:: PRELAMB semantic presentation
:: deftheorem Def1 defines \ PRELAMB:def 1 :
:: deftheorem Def2 defines /" PRELAMB:def 2 :
:: deftheorem Def3 defines * PRELAMB:def 3 :
Lemma1:
for b1 being Function holds (pr1 (dom b1),(rng b1)) .: b1 = dom b1
Lemma2:
for b1 being Function holds
( dom b1 is finite iff b1 is finite )
definition
let c1 be non
empty typealg ;
let c2 be
PreProof of
c1;
let c3 be
Element of
dom c2;
canceled;attr a3 is
correct means :
Def5:
:: PRELAMB:def 5
(
branchdeg a3 = 0 & ex
b1 being
type of
a1 st
(a2 . a3) `1 = [<*b1*>,b1] )
if (a2 . a3) `2 = 0
(
branchdeg a3 = 1 & ex
b1 being
FinSequence of the
carrier of
a1ex
b2,
b3 being
type of
a1 st
(
(a2 . a3) `1 = [b1,(b2 /" b3)] &
(a2 . (a3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) )
if (a2 . a3) `2 = 1
(
branchdeg a3 = 1 & ex
b1 being
FinSequence of the
carrier of
a1ex
b2,
b3 being
type of
a1 st
(
(a2 . a3) `1 = [b1,(b3 \ b2)] &
(a2 . (a3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) )
if (a2 . a3) `2 = 2
(
branchdeg a3 = 2 & ex
b1,
b2,
b3 being
FinSequence of the
carrier of
a1ex
b4,
b5,
b6 being
type of
a1 st
(
(a2 . a3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] &
(a2 . (a3 ^ <*0*>)) `1 = [b1,b5] &
(a2 . (a3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) )
if (a2 . a3) `2 = 3
(
branchdeg a3 = 2 & ex
b1,
b2,
b3 being
FinSequence of the
carrier of
a1ex
b4,
b5,
b6 being
type of
a1 st
(
(a2 . a3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] &
(a2 . (a3 ^ <*0*>)) `1 = [b1,b5] &
(a2 . (a3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) )
if (a2 . a3) `2 = 4
for
b1 being
type of
a1 holds
(
branchdeg a3 = 1 & ex
b2 being
FinSequence of the
carrier of
a1ex
b3,
b4 being
type of
a1ex
b5 being
FinSequence of the
carrier of
a1 st
(
(a2 . a3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] &
(a2 . (a3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) )
if (a2 . a3) `2 = 5
(
branchdeg a3 = 2 & ex
b1,
b2 being
FinSequence of the
carrier of
a1ex
b3,
b4 being
type of
a1 st
(
(a2 . a3) `1 = [(b1 ^ b2),(b3 * b4)] &
(a2 . (a3 ^ <*0*>)) `1 = [b1,b3] &
(a2 . (a3 ^ <*1*>)) `1 = [b2,b4] ) )
if (a2 . a3) `2 = 6
(
branchdeg a3 = 2 & ex
b1,
b2,
b3 being
FinSequence of the
carrier of
a1ex
b4,
b5 being
type of
a1 st
(
(a2 . a3) `1 = [((b2 ^ b1) ^ b3),b5] &
(a2 . (a3 ^ <*0*>)) `1 = [b1,b4] &
(a2 . (a3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) )
if (a2 . a3) `2 = 7
otherwise contradiction;
correctness
consistency
( ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 1 implies ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] iff ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) ) ) ) & ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 2 implies ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] iff ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) ) ) ) & ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 3 implies ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 4 implies ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 5 implies ( ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] ) iff for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) ) & ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 6 implies ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] iff ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) ) ) ) & ( (c2 . c3) `2 = 0 & (c2 . c3) `2 = 7 implies ( branchdeg c3 = 0 & ex b1 being type of c1 st (c2 . c3) `1 = [<*b1*>,b1] iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) & ( (c2 . c3) `2 = 1 & (c2 . c3) `2 = 2 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) iff ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) ) ) ) & ( (c2 . c3) `2 = 1 & (c2 . c3) `2 = 3 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 1 & (c2 . c3) `2 = 4 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 1 & (c2 . c3) `2 = 5 implies ( ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) ) iff for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) ) & ( (c2 . c3) `2 = 1 & (c2 . c3) `2 = 6 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) ) ) ) & ( (c2 . c3) `2 = 1 & (c2 . c3) `2 = 7 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b2 /" b3)] & (c2 . (c3 ^ <*0*>)) `1 = [(b1 ^ <*b3*>),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) & ( (c2 . c3) `2 = 2 & (c2 . c3) `2 = 3 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 2 & (c2 . c3) `2 = 4 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 2 & (c2 . c3) `2 = 5 implies ( ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) ) iff for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) ) & ( (c2 . c3) `2 = 2 & (c2 . c3) `2 = 6 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) ) ) ) & ( (c2 . c3) `2 = 2 & (c2 . c3) `2 = 7 implies ( branchdeg c3 = 1 & ex b1 being FinSequence of the carrier of c1ex b2, b3 being type of c1 st
( (c2 . c3) `1 = [b1,(b3 \ b2)] & (c2 . (c3 ^ <*0*>)) `1 = [(<*b3*> ^ b1),b2] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) & ( (c2 . c3) `2 = 3 & (c2 . c3) `2 = 4 implies ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) ) ) & ( (c2 . c3) `2 = 3 & (c2 . c3) `2 = 5 implies ( ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) iff for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) ) & ( (c2 . c3) `2 = 3 & (c2 . c3) `2 = 6 implies ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) iff ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) ) ) ) & ( (c2 . c3) `2 = 3 & (c2 . c3) `2 = 7 implies ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) & ( (c2 . c3) `2 = 4 & (c2 . c3) `2 = 5 implies ( ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) ) iff for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) ) & ( (c2 . c3) `2 = 4 & (c2 . c3) `2 = 6 implies ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) iff ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) ) ) ) & ( (c2 . c3) `2 = 4 & (c2 . c3) `2 = 7 implies ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5, b6 being type of c1 st
( (c2 . c3) `1 = [(((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3),b6] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b5] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b6] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) & ( (c2 . c3) `2 = 5 & (c2 . c3) `2 = 6 implies ( ( for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) iff ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) ) ) ) & ( (c2 . c3) `2 = 5 & (c2 . c3) `2 = 7 implies ( ( for b1 being type of c1 holds
( branchdeg c3 = 1 & ex b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1ex b5 being FinSequence of the carrier of c1 st
( (c2 . c3) `1 = [((b2 ^ <*(b3 * b4)*>) ^ b5),b1] & (c2 . (c3 ^ <*0*>)) `1 = [(((b2 ^ <*b3*>) ^ <*b4*>) ^ b5),b1] ) ) ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) & ( (c2 . c3) `2 = 6 & (c2 . c3) `2 = 7 implies ( branchdeg c3 = 2 & ex b1, b2 being FinSequence of the carrier of c1ex b3, b4 being type of c1 st
( (c2 . c3) `1 = [(b1 ^ b2),(b3 * b4)] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b3] & (c2 . (c3 ^ <*1*>)) `1 = [b2,b4] ) iff ( branchdeg c3 = 2 & ex b1, b2, b3 being FinSequence of the carrier of c1ex b4, b5 being type of c1 st
( (c2 . c3) `1 = [((b2 ^ b1) ^ b3),b5] & (c2 . (c3 ^ <*0*>)) `1 = [b1,b4] & (c2 . (c3 ^ <*1*>)) `1 = [((b2 ^ <*b4*>) ^ b3),b5] ) ) ) ) );
;
end;
:: deftheorem Def4 PRELAMB:def 4 :
canceled;
:: deftheorem Def5 defines correct PRELAMB:def 5 :
for
b1 being non
empty typealg for
b2 being
PreProof of
b1 for
b3 being
Element of
dom b2 holds
( (
(b2 . b3) `2 = 0 implies (
b3 is
correct iff (
branchdeg b3 = 0 & ex
b4 being
type of
b1 st
(b2 . b3) `1 = [<*b4*>,b4] ) ) ) & (
(b2 . b3) `2 = 1 implies (
b3 is
correct iff (
branchdeg b3 = 1 & ex
b4 being
FinSequence of the
carrier of
b1ex
b5,
b6 being
type of
b1 st
(
(b2 . b3) `1 = [b4,(b5 /" b6)] &
(b2 . (b3 ^ <*0*>)) `1 = [(b4 ^ <*b6*>),b5] ) ) ) ) & (
(b2 . b3) `2 = 2 implies (
b3 is
correct iff (
branchdeg b3 = 1 & ex
b4 being
FinSequence of the
carrier of
b1ex
b5,
b6 being
type of
b1 st
(
(b2 . b3) `1 = [b4,(b6 \ b5)] &
(b2 . (b3 ^ <*0*>)) `1 = [(<*b6*> ^ b4),b5] ) ) ) ) & (
(b2 . b3) `2 = 3 implies (
b3 is
correct iff (
branchdeg b3 = 2 & ex
b4,
b5,
b6 being
FinSequence of the
carrier of
b1ex
b7,
b8,
b9 being
type of
b1 st
(
(b2 . b3) `1 = [(((b5 ^ <*(b7 /" b8)*>) ^ b4) ^ b6),b9] &
(b2 . (b3 ^ <*0*>)) `1 = [b4,b8] &
(b2 . (b3 ^ <*1*>)) `1 = [((b5 ^ <*b7*>) ^ b6),b9] ) ) ) ) & (
(b2 . b3) `2 = 4 implies (
b3 is
correct iff (
branchdeg b3 = 2 & ex
b4,
b5,
b6 being
FinSequence of the
carrier of
b1ex
b7,
b8,
b9 being
type of
b1 st
(
(b2 . b3) `1 = [(((b5 ^ b4) ^ <*(b8 \ b7)*>) ^ b6),b9] &
(b2 . (b3 ^ <*0*>)) `1 = [b4,b8] &
(b2 . (b3 ^ <*1*>)) `1 = [((b5 ^ <*b7*>) ^ b6),b9] ) ) ) ) & (
(b2 . b3) `2 = 5 implies (
b3 is
correct iff for
b4 being
type of
b1 holds
(
branchdeg b3 = 1 & ex
b5 being
FinSequence of the
carrier of
b1ex
b6,
b7 being
type of
b1ex
b8 being
FinSequence of the
carrier of
b1 st
(
(b2 . b3) `1 = [((b5 ^ <*(b6 * b7)*>) ^ b8),b4] &
(b2 . (b3 ^ <*0*>)) `1 = [(((b5 ^ <*b6*>) ^ <*b7*>) ^ b8),b4] ) ) ) ) & (
(b2 . b3) `2 = 6 implies (
b3 is
correct iff (
branchdeg b3 = 2 & ex
b4,
b5 being
FinSequence of the
carrier of
b1ex
b6,
b7 being
type of
b1 st
(
(b2 . b3) `1 = [(b4 ^ b5),(b6 * b7)] &
(b2 . (b3 ^ <*0*>)) `1 = [b4,b6] &
(b2 . (b3 ^ <*1*>)) `1 = [b5,b7] ) ) ) ) & (
(b2 . b3) `2 = 7 implies (
b3 is
correct iff (
branchdeg b3 = 2 & ex
b4,
b5,
b6 being
FinSequence of the
carrier of
b1ex
b7,
b8 being
type of
b1 st
(
(b2 . b3) `1 = [((b5 ^ b4) ^ b6),b8] &
(b2 . (b3 ^ <*0*>)) `1 = [b4,b7] &
(b2 . (b3 ^ <*1*>)) `1 = [((b5 ^ <*b7*>) ^ b6),b8] ) ) ) ) & ( not
(b2 . b3) `2 = 0 & not
(b2 . b3) `2 = 1 & not
(b2 . b3) `2 = 2 & not
(b2 . b3) `2 = 3 & not
(b2 . b3) `2 = 4 & not
(b2 . b3) `2 = 5 & not
(b2 . b3) `2 = 6 & not
(b2 . b3) `2 = 7 implies (
b3 is
correct iff contradiction ) ) );
:: deftheorem Def6 defines left PRELAMB:def 6 :
:: deftheorem Def7 defines right PRELAMB:def 7 :
:: deftheorem Def8 defines middle PRELAMB:def 8 :
:: deftheorem Def9 defines primitive PRELAMB:def 9 :
:: deftheorem Def10 defines represents PRELAMB:def 10 :
:: deftheorem Def11 defines free PRELAMB:def 11 :
:: deftheorem Def12 defines repr_of PRELAMB:def 12 :
deffunc H1( typealg ) -> set = [:(the carrier of a1 * ),the carrier of a1:];
:: deftheorem Def13 defines Proof PRELAMB:def 13 :
theorem Th1: :: PRELAMB:1
theorem Th2: :: PRELAMB:2
theorem Th3: :: PRELAMB:3
theorem Th4: :: PRELAMB:4
theorem Th5: :: PRELAMB:5
theorem Th6: :: PRELAMB:6
theorem Th7: :: PRELAMB:7
theorem Th8: :: PRELAMB:8
theorem Th9: :: PRELAMB:9
theorem Th10: :: PRELAMB:10
theorem Th11: :: PRELAMB:11
:: deftheorem Def14 defines cut-free PRELAMB:def 14 :
:: deftheorem Def15 defines size_w.r.t. PRELAMB:def 15 :
Lemma9:
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Function of b1, NAT holds b3 * b2 is FinSequence of NAT
Lemma10:
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Function of b1, NAT holds b3 * b2 is FinSequence of REAL
Lemma11:
for b1 being non empty set
for b2 being FinSequence of b1
for b3 being Function of b1, NAT holds Sum (b3 * b2) is Nat
definition
let c1 be non
empty typealg ;
let c2 be
Proof of
c1;
func cutdeg c2 -> Nat means :: PRELAMB:def 16
ex
b1,
b2,
b3 being
FinSequence of the
carrier of
a1ex
b4,
b5 being
type of
a1 st
(
(a2 . {} ) `1 = [((b2 ^ b1) ^ b3),b5] &
(a2 . <*0*>) `1 = [b1,b4] &
(a2 . <*1*>) `1 = [((b2 ^ <*b4*>) ^ b3),b5] &
a3 = (((size_w.r.t. a1) . b4) + ((size_w.r.t. a1) . b5)) + (Sum ((size_w.r.t. a1) * ((b2 ^ b1) ^ b3))) )
if (a2 . {} ) `2 = 7
otherwise a3 = 0;
existence
( ( (c2 . {} ) `2 = 7 implies ex b1 being Natex b2, b3, b4 being FinSequence of the carrier of c1ex b5, b6 being type of c1 st
( (c2 . {} ) `1 = [((b3 ^ b2) ^ b4),b6] & (c2 . <*0*>) `1 = [b2,b5] & (c2 . <*1*>) `1 = [((b3 ^ <*b5*>) ^ b4),b6] & b1 = (((size_w.r.t. c1) . b5) + ((size_w.r.t. c1) . b6)) + (Sum ((size_w.r.t. c1) * ((b3 ^ b2) ^ b4))) ) ) & ( not (c2 . {} ) `2 = 7 implies ex b1 being Nat st b1 = 0 ) )
uniqueness
for b1, b2 being Nat holds
( ( (c2 . {} ) `2 = 7 & ex b3, b4, b5 being FinSequence of the carrier of c1ex b6, b7 being type of c1 st
( (c2 . {} ) `1 = [((b4 ^ b3) ^ b5),b7] & (c2 . <*0*>) `1 = [b3,b6] & (c2 . <*1*>) `1 = [((b4 ^ <*b6*>) ^ b5),b7] & b1 = (((size_w.r.t. c1) . b6) + ((size_w.r.t. c1) . b7)) + (Sum ((size_w.r.t. c1) * ((b4 ^ b3) ^ b5))) ) & ex b3, b4, b5 being FinSequence of the carrier of c1ex b6, b7 being type of c1 st
( (c2 . {} ) `1 = [((b4 ^ b3) ^ b5),b7] & (c2 . <*0*>) `1 = [b3,b6] & (c2 . <*1*>) `1 = [((b4 ^ <*b6*>) ^ b5),b7] & b2 = (((size_w.r.t. c1) . b6) + ((size_w.r.t. c1) . b7)) + (Sum ((size_w.r.t. c1) * ((b4 ^ b3) ^ b5))) ) implies b1 = b2 ) & ( not (c2 . {} ) `2 = 7 & b1 = 0 & b2 = 0 implies b1 = b2 ) )
consistency
for b1 being Nat holds verum
;
end;
:: deftheorem Def16 defines cutdeg PRELAMB:def 16 :
:: deftheorem Def17 defines Model PRELAMB:def 17 :
:: deftheorem Def18 defines ==>. PRELAMB:def 18 :
definition
let c1 be non
empty typestr ;
attr a1 is
SynTypes_Calculus-like means :
Def19:
:: PRELAMB:def 19
( ( for
b1 being
type of
a1 holds
<*b1*> ==>. b1 ) & ( for
b1 being
FinSequence of the
carrier of
a1 for
b2,
b3 being
type of
a1 st
b1 ^ <*b3*> ==>. b2 holds
b1 ==>. b2 /" b3 ) & ( for
b1 being
FinSequence of the
carrier of
a1 for
b2,
b3 being
type of
a1 st
<*b3*> ^ b1 ==>. b2 holds
b1 ==>. b3 \ b2 ) & ( for
b1,
b2,
b3 being
FinSequence of the
carrier of
a1 for
b4,
b5,
b6 being
type of
a1 st
b1 ==>. b5 &
(b2 ^ <*b4*>) ^ b3 ==>. b6 holds
((b2 ^ <*(b4 /" b5)*>) ^ b1) ^ b3 ==>. b6 ) & ( for
b1,
b2,
b3 being
FinSequence of the
carrier of
a1 for
b4,
b5,
b6 being
type of
a1 st
b1 ==>. b5 &
(b2 ^ <*b4*>) ^ b3 ==>. b6 holds
((b2 ^ b1) ^ <*(b5 \ b4)*>) ^ b3 ==>. b6 ) & ( for
b1,
b2 being
FinSequence of the
carrier of
a1 for
b3,
b4,
b5 being
type of
a1 st
((b1 ^ <*b3*>) ^ <*b4*>) ^ b2 ==>. b5 holds
(b1 ^ <*(b3 * b4)*>) ^ b2 ==>. b5 ) & ( for
b1,
b2 being
FinSequence of the
carrier of
a1 for
b3,
b4 being
type of
a1 st
b1 ==>. b3 &
b2 ==>. b4 holds
b1 ^ b2 ==>. b3 * b4 ) );
end;
:: deftheorem Def19 defines SynTypes_Calculus-like PRELAMB:def 19 :
for
b1 being non
empty typestr holds
(
b1 is
SynTypes_Calculus-like iff ( ( for
b2 being
type of
b1 holds
<*b2*> ==>. b2 ) & ( for
b2 being
FinSequence of the
carrier of
b1 for
b3,
b4 being
type of
b1 st
b2 ^ <*b4*> ==>. b3 holds
b2 ==>. b3 /" b4 ) & ( for
b2 being
FinSequence of the
carrier of
b1 for
b3,
b4 being
type of
b1 st
<*b4*> ^ b2 ==>. b3 holds
b2 ==>. b4 \ b3 ) & ( for
b2,
b3,
b4 being
FinSequence of the
carrier of
b1 for
b5,
b6,
b7 being
type of
b1 st
b2 ==>. b6 &
(b3 ^ <*b5*>) ^ b4 ==>. b7 holds
((b3 ^ <*(b5 /" b6)*>) ^ b2) ^ b4 ==>. b7 ) & ( for
b2,
b3,
b4 being
FinSequence of the
carrier of
b1 for
b5,
b6,
b7 being
type of
b1 st
b2 ==>. b6 &
(b3 ^ <*b5*>) ^ b4 ==>. b7 holds
((b3 ^ b2) ^ <*(b6 \ b5)*>) ^ b4 ==>. b7 ) & ( for
b2,
b3 being
FinSequence of the
carrier of
b1 for
b4,
b5,
b6 being
type of
b1 st
((b2 ^ <*b4*>) ^ <*b5*>) ^ b3 ==>. b6 holds
(b2 ^ <*(b4 * b5)*>) ^ b3 ==>. b6 ) & ( for
b2,
b3 being
FinSequence of the
carrier of
b1 for
b4,
b5 being
type of
b1 st
b2 ==>. b4 &
b3 ==>. b5 holds
b2 ^ b3 ==>. b4 * b5 ) ) );
deffunc H2( typestr ) -> FinSequence of the carrier of a1 = <*> the carrier of a1;
Lemma14:
for b1 being SynTypes_Calculus
for b2, b3 being FinSequence of the carrier of b1
for b4, b5, b6 being type of b1 st b2 ==>. b4 & b3 ^ <*b5*> ==>. b6 holds
(b3 ^ <*(b5 /" b4)*>) ^ b2 ==>. b6
Lemma15:
for b1 being SynTypes_Calculus
for b2, b3 being FinSequence of the carrier of b1
for b4, b5, b6 being type of b1 st b2 ==>. b4 & <*b5*> ^ b3 ==>. b6 holds
(<*(b5 /" b4)*> ^ b2) ^ b3 ==>. b6
Lemma16:
for b1 being SynTypes_Calculus
for b2 being FinSequence of the carrier of b1
for b3, b4, b5 being type of b1 st b2 ==>. b3 & <*b4*> ==>. b5 holds
<*(b4 /" b3)*> ^ b2 ==>. b5
Lemma17:
for b1 being SynTypes_Calculus
for b2, b3 being FinSequence of the carrier of b1
for b4, b5, b6 being type of b1 st b2 ==>. b4 & b3 ^ <*b5*> ==>. b6 holds
(b3 ^ b2) ^ <*(b4 \ b5)*> ==>. b6
Lemma18:
for b1 being SynTypes_Calculus
for b2, b3 being FinSequence of the carrier of b1
for b4, b5, b6 being type of b1 st b2 ==>. b4 & <*b5*> ^ b3 ==>. b6 holds
(b2 ^ <*(b4 \ b5)*>) ^ b3 ==>. b6
Lemma19:
for b1 being SynTypes_Calculus
for b2 being FinSequence of the carrier of b1
for b3, b4, b5 being type of b1 st b2 ==>. b3 & <*b4*> ==>. b5 holds
b2 ^ <*(b3 \ b4)*> ==>. b5
Lemma20:
for b1 being SynTypes_Calculus
for b2 being FinSequence of the carrier of b1
for b3, b4, b5 being type of b1 st (<*b3*> ^ <*b4*>) ^ b2 ==>. b5 holds
<*(b3 * b4)*> ^ b2 ==>. b5
Lemma21:
for b1 being SynTypes_Calculus
for b2 being FinSequence of the carrier of b1
for b3, b4, b5 being type of b1 st (b2 ^ <*b3*>) ^ <*b4*> ==>. b5 holds
b2 ^ <*(b3 * b4)*> ==>. b5
Lemma22:
for b1 being SynTypes_Calculus
for b2, b3, b4 being type of b1 st <*b2*> ^ <*b3*> ==>. b4 holds
<*(b2 * b3)*> ==>. b4
theorem Th12: :: PRELAMB:12
theorem Th13: :: PRELAMB:13
theorem Th14: :: PRELAMB:14
theorem Th15: :: PRELAMB:15
theorem Th16: :: PRELAMB:16
theorem Th17: :: PRELAMB:17
theorem Th18: :: PRELAMB:18
theorem Th19: :: PRELAMB:19
theorem Th20: :: PRELAMB:20
theorem Th21: :: PRELAMB:21
theorem Th22: :: PRELAMB:22
theorem Th23: :: PRELAMB:23
theorem Th24: :: PRELAMB:24
:: deftheorem Def20 defines <==>. PRELAMB:def 20 :
theorem Th25: :: PRELAMB:25
theorem Th26: :: PRELAMB:26
theorem Th27: :: PRELAMB:27
theorem Th28: :: PRELAMB:28
theorem Th29: :: PRELAMB:29
theorem Th30: :: PRELAMB:30