Loading [MathJax]/jax/output/HTML-CSS/jax.js

Wednesday, October 5, 2011

EQ 9 Quantification

(1) Monoids And Abelian Monoids

Binary Operator is associative and has an identity it is a monoid. If it is also symmetric, it is an abelian monoid.

In the following the represents an operator that is an abelian monoid. All theorems don't strictly need the "abelian-ness", but the operators we deal with are all abelian, so the assumption does no harm.

(2) General Form of Quantification

( x:type1, y:type2 ..) | Range:B : Predicate:type3)

x,y,... are bound variables or 'dummmies'
the Predicate is also known as the "body".

(3) Definition of 'free'

(a) The *occurrence* of i, in an expression i is free
(b) If an occurrence of a variable i in expression E is free, then so is the occurrence in (E), function application arguments f(....E...) [note: binary operators are considered function applications)[, (x|E:P) and (x|R:E) (as long as i is not one of the variables in the dummy list x.)

(4) Definition of 'bound'

(a) If an occurrence of a variable i in expression E is free, then that occurrence is bound to dummy i in (x|E:P) and ( x|R:E) if i occurs in dummy list x.

(b) If an occurrence of i is bound in expression E, then it is also bound to the same dummy in (E), function application arguments f(....E...) [note: binary operators are considered function applications)], (x|E:P) and (x|R:E)

(5) Definition of occurs-free and not-occurs-free

occurs-free(v,e) is defined to mean that at least one variable from the list-of-variables v occurs free in at least one expression in list of expressions v

not-occurs-free(v,e) ¬occurs-free(v,e) no variable in list-of-variables v occurs free in any of the expressions in list-of-expressions e

(6) Textual Substitution

Extending textual substitution to quantified statements

( x | R : P)[y := F] ( x | R[y := F] : P[y := F]),

given not-occurs-free(x,[y,F])), iow none of the bound variables is free on either side of the := . If a bound variable does occur free on either side of :=, replace *the bound variable* with a fresh variable j. This ensures that a free variable in the textual substitution y := F does not become bound.

Extending Leibniz inference rule to handle substitution of either side of an equality into a quantified statement

(7) Leibniz 1

A=B(x|R[z:=A]:P)=(x|R[z:=B]:P)

(8) Leibniz 2

RA=B(x|R:P[z:=A])=(x|R:P[z:=B])

(9) Axiom: Empty Range: ( x | false : P ) u (the identity of )

(10) Axiom: One Point Range: ( x | x = E : P ) P[ x := E ]
provided not-occurs-free (x,E)

(11) Axiom: Distributivity: ( x | R : P ) ( x | R : Q ) ( x | R : P Q )
provided each quantification is defined (quantifications with finite ranges are always defined as are quantifications with being either or . if is +, then you have to check for convergence of the summation, etc)

(12) Axiom: Range Split 1: ( x | R S: P ) ( x | R : P ) ( x | S : P )
provided (R S) is false each quantification is defined

(13) Axiom: Range Split 2: ( x | R S: P ) ( x | R S: P ) ( x | R : P ) ( x | S : P )
provided each quantification is defined

(14) Axiom: Range Split 3: ( x | R S: P ) ( x | R : P ) ( x | S : P )
provided is idempotent each quantification is defined

Note: Definition of idempotent: is idempotent ( a a a)

(15) Axiom: Interchange of Dummies: ( x | R :( y | S : P) ) ( y | S :( x| R : P) )
provided not-occurs-free(x,S) not-occurs-free(y,R) each quantification is defined

iow "nested quantifications with the same operator can be interchanged"

(16) Axiom: Dummy Nesting: ( x,y | R S : P) ( x | R :( y | S : P) )
provided not-occurs-free(y,R)

iow " a single quantification over a list of dummies can be viewed as nested quantification"

(17) Axiom: Dummy Renaming: (x | R : P) (y | R[x := y] : P[x := y])
provided not-occurs-free (y, [R,P])

iow "one dummy can be replaced consistently by another dummy"

(18) Theorem: Change of Dummy (Generalization of Dummy Renaming) (x | R : P) (x | R [x := f.y] : P[x := f.y])

provided not-occurs-free (y,[R,P]) f is an invertible function such that x = f.y and y = f1.x

Example: Consider (+ i | 2 i 10 : i2 ) and we need to have a range starting with zero

the reqd range is (2 - 0) i2 (10 - 2)

let k = (i - 2) this is new dummy expressed in terms of old = f1.i = k = i - 2

so i = k + 2 this is old dummy expressed in terms of new = f.k = i = k + 2

(+ i | 2 i 10 : i2 )
= Dummy Renaming Theorem. Rename the dummy from i to k with i = f.k = k - 2
(+ k | 2 k+2 10 : (k+2)2 )
= arithmetic a b c a-2 b-2 c-2
(+ k | 0 k 8 : (k+2)2 )

(19) Theorem: Split off term 1
(i | 0i<n+1 : P) (i | 0i<n : P) P[i := n ]

(20) Theorem: Split off term 2
(i | 0i<n+1 : P) P[i := 0 ] (i | 0<i<n+1 : P)

No comments:

Post a Comment