Definitions IteratedBinops Sections DiscrMathExt Doc
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html
Continued from iter via intseg remark INTRO

When the default empty-range value is an identity value for the binary operation, i.e.

Def  is_ident(Afu) == x:Af(u,x) = x & f(x,u) = x

which incidentally is unique if it exists; and when, further, the binary operation is associative then the range of iteration {a..b} can be freely split into two subranges, {a..c} and {c..b}, as described in the following theorem:

Thm*  f:(AAA), u:A.
Thm*  is_ident(Afu)
Thm*  
Thm*  is_assoc_sep(Af)
Thm*  
Thm*  (a,c,b:e:({a..b}A).
Thm*  (ac
Thm*  (
Thm*  (cb
Thm*  (
Thm*  ((Iter(f;ui:{a..b}. e(i))
Thm*  (=
Thm*  (f((Iter(f;ui:{a..c}. e(i)),Iter(f;ui:{c..b}. e(i)))

If the binary operation, in addition to having an identity and being associative, is commutative,

Def  is_commutative_sep(Af) == is_commutative(Ax,z.(f(x,z)))

then iterations over two sets of values, e and g in {a..b}A, indexed by the same integer subrange, can be easily combined pointwise by the binary operation f  AAA:

Thm*  f:(AAA), u:A.
Thm*  is_commutative_sep(Af)
Thm*  
Thm*  is_ident(Afu)
Thm*  
Thm*  is_assoc_sep(Af)
Thm*  
Thm*  (a,b:e,g:({a..b}A).
Thm*  (f((Iter(f;ui:{a..b}. e(i)),Iter(f;ui:{a..b}. g(i))
Thm*  (=
Thm*  ((Iter(f;ui:{a..b}. f(e(i),g(i)))
Thm*  ( A)

About:
intapplyfunctionuniverseequalmemberimpliesandall!abstraction
IF YOU CAN SEE THIS go to /sfa/Nuprl/Shared/Xindentation_hack_doc.html

Definitions IteratedBinops Sections DiscrMathExt Doc