canceled;
theorem
for
X being
set for
a1,
a2,
a3,
a4,
a5,
a6 being
object st
a1 in X &
a2 in X &
a3 in X &
a4 in X &
a5 in X &
a6 in X holds
{a1,a2,a3,a4,a5,a6} c= X by ENUMSET1:def 4;
theorem
for
X being
set for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9 being
object st
a1 in X &
a2 in X &
a3 in X &
a4 in X &
a5 in X &
a6 in X &
a7 in X &
a8 in X &
a9 in X holds
{a1,a2,a3,a4,a5,a6,a7,a8,a9} c= X by ENUMSET1:def 7;
theorem Th10:
for
X being
set for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9,
a10 being
object st
a1 in X &
a2 in X &
a3 in X &
a4 in X &
a5 in X &
a6 in X &
a7 in X &
a8 in X &
a9 in X &
a10 in X holds
{a1,a2,a3,a4,a5,a6,a7,a8,a9,a10} c= X by ENUMSET1:def 8;
theorem
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9 being
object holds
{a1} \/ {a2,a3,a4,a5,a6,a7,a8,a9} = {a1,a2,a3,a4,a5,a6,a7,a8,a9}
theorem Th12:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9,
a10 being
object holds
{a1} \/ {a2,a3,a4,a5,a6,a7,a8,a9,a10} = {a1,a2,a3,a4,a5,a6,a7,a8,a9,a10}
theorem Th13:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9 being
object holds
{a1,a2,a3} \/ {a4,a5,a6,a7,a8,a9} = {a1,a2,a3,a4,a5,a6,a7,a8,a9}
::
deftheorem defines
<* AOFA_A00:def 3 :
for a1, a2, a3, a4, a5, a6 being object holds <*a1,a2,a3,a4,a5,a6*> = <*a1,a2,a3,a4,a5*> ^ <*a6*>;
definition
let X be non
empty set ;
let a1,
a2,
a3,
a4,
a5,
a6 be
Element of
X;
<*redefine func <*a1,a2,a3,a4,a5,a6*> -> FinSequence of
X;
coherence
<*a1,a2,a3,a4,a5,a6*> is FinSequence of X
end;
registration
let a1,
a2,
a3,
a4,
a5,
a6 be
object ;
coherence
<*a1,a2,a3,a4,a5,a6*> is 6 -element
;
end;
theorem
for
a1,
a2,
a3,
a4,
a5,
a6 being
object for
f being
FinSequence holds
(
f = <*a1,a2,a3,a4,a5,a6*> iff (
len f = 6 &
f . 1
= a1 &
f . 2
= a2 &
f . 3
= a3 &
f . 4
= a4 &
f . 5
= a5 &
f . 6
= a6 ) )
theorem
for
a1,
a2,
a3,
a4,
a5,
a6 being
object holds
rng <*a1,a2,a3,a4,a5,a6*> = {a1,a2,a3,a4,a5,a6}
definition
let a1,
a2,
a3,
a4,
a5,
a6,
a7 be
object ;
func <*a1,a2,a3,a4,a5,a6,a7*> -> FinSequence equals
<*a1,a2,a3,a4,a5*> ^ <*a6,a7*>;
coherence
<*a1,a2,a3,a4,a5*> ^ <*a6,a7*> is FinSequence
;
end;
::
deftheorem defines
<* AOFA_A00:def 4 :
for a1, a2, a3, a4, a5, a6, a7 being object holds <*a1,a2,a3,a4,a5,a6,a7*> = <*a1,a2,a3,a4,a5*> ^ <*a6,a7*>;
definition
let X be non
empty set ;
let a1,
a2,
a3,
a4,
a5,
a6,
a7 be
Element of
X;
<*redefine func <*a1,a2,a3,a4,a5,a6,a7*> -> FinSequence of
X;
coherence
<*a1,a2,a3,a4,a5,a6,a7*> is FinSequence of X
end;
registration
let a1,
a2,
a3,
a4,
a5,
a6,
a7 be
object ;
coherence
<*a1,a2,a3,a4,a5,a6,a7*> is 7 -element
;
end;
theorem
for
a1,
a2,
a3,
a4,
a5,
a6,
a7 being
object for
f being
FinSequence holds
(
f = <*a1,a2,a3,a4,a5,a6,a7*> iff (
len f = 7 &
f . 1
= a1 &
f . 2
= a2 &
f . 3
= a3 &
f . 4
= a4 &
f . 5
= a5 &
f . 6
= a6 &
f . 7
= a7 ) )
theorem
for
a1,
a2,
a3,
a4,
a5,
a6,
a7 being
object holds
rng <*a1,a2,a3,a4,a5,a6,a7*> = {a1,a2,a3,a4,a5,a6,a7}
definition
let a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8 be
object ;
func <*a1,a2,a3,a4,a5,a6,a7,a8*> -> FinSequence equals
<*a1,a2,a3,a4,a5*> ^ <*a6,a7,a8*>;
coherence
<*a1,a2,a3,a4,a5*> ^ <*a6,a7,a8*> is FinSequence
;
end;
::
deftheorem defines
<* AOFA_A00:def 5 :
for a1, a2, a3, a4, a5, a6, a7, a8 being object holds <*a1,a2,a3,a4,a5,a6,a7,a8*> = <*a1,a2,a3,a4,a5*> ^ <*a6,a7,a8*>;
definition
let X be non
empty set ;
let a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8 be
Element of
X;
<*redefine func <*a1,a2,a3,a4,a5,a6,a7,a8*> -> FinSequence of
X;
coherence
<*a1,a2,a3,a4,a5,a6,a7,a8*> is FinSequence of X
end;
registration
let a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8 be
object ;
coherence
<*a1,a2,a3,a4,a5,a6,a7,a8*> is 8 -element
;
end;
theorem Th19:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8 being
object for
f being
FinSequence holds
(
f = <*a1,a2,a3,a4,a5,a6,a7,a8*> iff (
len f = 8 &
f . 1
= a1 &
f . 2
= a2 &
f . 3
= a3 &
f . 4
= a4 &
f . 5
= a5 &
f . 6
= a6 &
f . 7
= a7 &
f . 8
= a8 ) )
theorem Th20:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8 being
object holds
rng <*a1,a2,a3,a4,a5,a6,a7,a8*> = {a1,a2,a3,a4,a5,a6,a7,a8}
theorem Th21:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9 being
object holds
rng (<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) = {a1,a2,a3,a4,a5,a6,a7,a8,a9}
theorem Th23:
Seg 10
= {1,2,3,4,5,6,7,8,9,10}
theorem Th24:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9 being
object holds
(
dom (<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) = Seg 9 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 1
= a1 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 2
= a2 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 3
= a3 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 4
= a4 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 5
= a5 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 6
= a6 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 7
= a7 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 8
= a8 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9*>) . 9
= a9 )
theorem Th25:
for
a1,
a2,
a3,
a4,
a5,
a6,
a7,
a8,
a9,
a10 being
object holds
(
dom (<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) = Seg 10 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 1
= a1 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 2
= a2 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 3
= a3 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 4
= a4 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 5
= a5 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 6
= a6 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 7
= a7 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 8
= a8 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 9
= a9 &
(<*a1,a2,a3,a4,a5,a6,a7,a8*> ^ <*a9,a10*>) . 10
= a10 )
theorem Th29:
for
S being non
empty non
void ManySortedSign for
o,
a,
b,
c being
set for
r being
SortSymbol of
S st
o is_of_type <*a,b,c*>,
r holds
for
A being
MSAlgebra over
S st the
Sorts of
A . a <> {} & the
Sorts of
A . b <> {} & the
Sorts of
A . c <> {} & the
Sorts of
A . r <> {} holds
for
x being
Element of the
Sorts of
A . a for
y being
Element of the
Sorts of
A . b for
z being
Element of the
Sorts of
A . c holds
(Den ((In (o, the carrier' of S)),A)) . <*x,y,z*> is
Element of the
Sorts of
A . r
theorem
for
S1,
S2 being
ManySortedSign st
ManySortedSign(# the
carrier of
S1, the
carrier' of
S1, the
Arity of
S1, the
ResultSort of
S1 #)
= ManySortedSign(# the
carrier of
S2, the
carrier' of
S2, the
Arity of
S2, the
ResultSort of
S2 #) holds
for
o,
a being
set for
r1 being
Element of
S1 for
r2 being
Element of
S2 st
r1 = r2 &
o is_of_type a,
r1 holds
o is_of_type a,
r2 ;
theorem
for
U1,
U2 being
preIfWhileAlgebra st
UAStr(# the
carrier of
U1, the
charact of
U1 #)
= UAStr(# the
carrier of
U2, the
charact of
U2 #) holds
(
EmptyIns U1 = EmptyIns U2 & ( for
I1,
J1 being
Element of
U1 for
I2,
J2 being
Element of
U2 st
I1 = I2 &
J1 = J2 holds
(
I1 \; J1 = I2 \; J2 &
while (
I1,
J1)
= while (
I2,
J2) & ( for
C1 being
Element of
U1 for
C2 being
Element of
U2 st
C1 = C2 holds
if-then-else (
C1,
I1,
J1)
= if-then-else (
C2,
I2,
J2) ) ) ) ) ;
definition
let J be non
empty non
void ManySortedSign ;
let T,
C be
non-empty MSAlgebra over
J;
let X be
V2()
GeneratorSet of
T;
existence
ex b1 being Subset of (MSFuncs (X, the Sorts of C)) st
for s being ManySortedFunction of X, the Sorts of C holds
( s in b1 iff ex f being ManySortedFunction of T,C st
( f is_homomorphism T,C & s = f || X ) )
uniqueness
for b1, b2 being Subset of (MSFuncs (X, the Sorts of C)) st ( for s being ManySortedFunction of X, the Sorts of C holds
( s in b1 iff ex f being ManySortedFunction of T,C st
( f is_homomorphism T,C & s = f || X ) ) ) & ( for s being ManySortedFunction of X, the Sorts of C holds
( s in b2 iff ex f being ManySortedFunction of T,C st
( f is_homomorphism T,C & s = f || X ) ) ) holds
b1 = b2
end;
definition
let B be non
empty non
void ManySortedSign ;
let X be
V2()
ManySortedSet of the
carrier of
B;
let T be
non-empty X,
B -terms MSAlgebra over
B;
let C be
image of
T;
let a be
SortSymbol of
B;
let t be
Element of
T,
a;
let s be
Function-yielding Function;
given h being
ManySortedFunction of
T,
C,
Q being
GeneratorSet of
T such that A1:
(
h is_homomorphism T,
C &
Q = doms s &
s = h || Q )
;
existence
ex b1 being Element of C,a ex f being ManySortedFunction of T,C ex Q being GeneratorSet of T st
( f is_homomorphism T,C & Q = doms s & s = f || Q & b1 = (f . a) . t )
uniqueness
for b1, b2 being Element of C,a st ex f being ManySortedFunction of T,C ex Q being GeneratorSet of T st
( f is_homomorphism T,C & Q = doms s & s = f || Q & b1 = (f . a) . t ) & ex f being ManySortedFunction of T,C ex Q being GeneratorSet of T st
( f is_homomorphism T,C & Q = doms s & s = f || Q & b2 = (f . a) . t ) holds
b1 = b2
by EXTENS_1:19;
end;
definition
let S be non
empty non
void ManySortedSign ;
let X be
V2()
ManySortedSet of the
carrier of
S;
let T be
X,
S -terms all_vars_including inheriting_operations free_in_itself VarMSAlgebra over
S;
let C be
image of
T;
let G be
GeneratorSystem over
S,
X,
T;
attr G is
C -supported means
(
FreeGen X is
ManySortedSubset of the
generators of
G & ( for
s being
SortSymbol of
S holds
(
dom ( the supported-term of G . s) = G . s & ( for
t being
Element of
G,
s holds
(
( the supported-term of G . s) . t is
ManySortedFunction of
vf t, the
Sorts of
T & (
t in (FreeGen X) . s implies (
supp-term t = id (s -singleton t) &
supp-var t = t ) ) & ( for
v being
Element of
C -States the
generators of
G st
(v . s) . (supp-var t) = (v . s) . t holds
for
r being
SortSymbol of
S for
x being
Element of
(FreeGen X) . r for
q being
Element of the
Sorts of
T . r st
x in (vf t) . r &
q = ((supp-term t) . r) . x holds
(v . r) . x = q value_at (
C,
v) ) & (
t nin (FreeGen X) . s implies for
H being
ManySortedSubset of the
generators of
G st
H = FreeGen X holds
for
v being
Element of
C,
s for
f being
ManySortedFunction of the
generators of
G, the
Sorts of
C st
f in C -States the
generators of
G holds
for
u being
ManySortedFunction of
FreeGen X, the
Sorts of
C st ( for
a being
SortSymbol of
S for
z being
Element of
(FreeGen X) . a st
z in (vf t) . a holds
for
q being
Element of
T,
a st
q = ((supp-term t) . a) . z holds
(u . a) . z = q value_at (
C,
((f || H) +* (s,(supp-var t),v))) ) holds
for
H being
ManySortedSubset of the
Sorts of
T st
H = FreeGen X holds
for
h being
ManySortedFunction of
T,
C st
h is_homomorphism T,
C &
h || H = u holds
v = (h . s) . t ) ) ) ) ) );
end;
::
deftheorem defines
-supported AOFA_A00:def 25 :
for S being non empty non void ManySortedSign
for X being V2() ManySortedSet of the carrier of S
for T being b2,b1 -terms all_vars_including inheriting_operations free_in_itself VarMSAlgebra over S
for C being image of T
for G being GeneratorSystem over S,X,T holds
( G is C -supported iff ( FreeGen X is ManySortedSubset of the generators of G & ( for s being SortSymbol of S holds
( dom ( the supported-term of G . s) = G . s & ( for t being Element of G,s holds
( ( the supported-term of G . s) . t is ManySortedFunction of vf t, the Sorts of T & ( t in (FreeGen X) . s implies ( supp-term t = id (s -singleton t) & supp-var t = t ) ) & ( for v being Element of C -States the generators of G st (v . s) . (supp-var t) = (v . s) . t holds
for r being SortSymbol of S
for x being Element of (FreeGen X) . r
for q being Element of the Sorts of T . r st x in (vf t) . r & q = ((supp-term t) . r) . x holds
(v . r) . x = q value_at (C,v) ) & ( t nin (FreeGen X) . s implies for H being ManySortedSubset of the generators of G st H = FreeGen X holds
for v being Element of C,s
for f being ManySortedFunction of the generators of G, the Sorts of C st f in C -States the generators of G holds
for u being ManySortedFunction of FreeGen X, the Sorts of C st ( for a being SortSymbol of S
for z being Element of (FreeGen X) . a st z in (vf t) . a holds
for q being Element of T,a st q = ((supp-term t) . a) . z holds
(u . a) . z = q value_at (C,((f || H) +* (s,(supp-var t),v))) ) holds
for H being ManySortedSubset of the Sorts of T st H = FreeGen X holds
for h being ManySortedFunction of T,C st h is_homomorphism T,C & h || H = u holds
v = (h . s) . t ) ) ) ) ) ) );
definition
let S be non
empty non
void ManySortedSign ;
let X be
V2()
ManySortedSet of
S;
let A be
X,
S -terms all_vars_including inheriting_operations free_in_itself vf-free VarMSAlgebra over
S;
let C be
image of
A;
let G be
GeneratorSystem over
S,
X,
A;
assume A1:
G is
C -supported
;
let s be
Element of
C -States the
generators of
G;
let r be
SortSymbol of
S;
let v be
Element of
C,
r;
let t be
Element of
G,
r;
existence
ex b1 being Element of C -States the generators of G st
( (b1 . r) . t = v & ( for p being SortSymbol of S
for x being Element of (FreeGen X) . p st ( p = r implies x <> t ) holds
( ( x nin (vf t) . p implies (b1 . p) . x = (s . p) . x ) & ( for u being ManySortedFunction of FreeGen X, the Sorts of C
for H being ManySortedSubset of the generators of G st H = FreeGen X holds
for f being ManySortedFunction of the generators of G, the Sorts of C st f = s & u = (f || H) +* (r,(supp-var t),v) & x in (vf t) . p holds
for q being Element of A,p st q = ((supp-term t) . p) . x holds
(b1 . p) . x = q value_at (C,u) ) ) ) )
uniqueness
for b1, b2 being Element of C -States the generators of G st (b1 . r) . t = v & ( for p being SortSymbol of S
for x being Element of (FreeGen X) . p st ( p = r implies x <> t ) holds
( ( x nin (vf t) . p implies (b1 . p) . x = (s . p) . x ) & ( for u being ManySortedFunction of FreeGen X, the Sorts of C
for H being ManySortedSubset of the generators of G st H = FreeGen X holds
for f being ManySortedFunction of the generators of G, the Sorts of C st f = s & u = (f || H) +* (r,(supp-var t),v) & x in (vf t) . p holds
for q being Element of A,p st q = ((supp-term t) . p) . x holds
(b1 . p) . x = q value_at (C,u) ) ) ) & (b2 . r) . t = v & ( for p being SortSymbol of S
for x being Element of (FreeGen X) . p st ( p = r implies x <> t ) holds
( ( x nin (vf t) . p implies (b2 . p) . x = (s . p) . x ) & ( for u being ManySortedFunction of FreeGen X, the Sorts of C
for H being ManySortedSubset of the generators of G st H = FreeGen X holds
for f being ManySortedFunction of the generators of G, the Sorts of C st f = s & u = (f || H) +* (r,(supp-var t),v) & x in (vf t) . p holds
for q being Element of A,p st q = ((supp-term t) . p) . x holds
(b2 . p) . x = q value_at (C,u) ) ) ) holds
b1 = b2
end;
::
deftheorem defines
succ AOFA_A00:def 26 :
for S being non empty non void ManySortedSign
for X being V2() ManySortedSet of S
for A being b2,b1 -terms all_vars_including inheriting_operations free_in_itself vf-free VarMSAlgebra over S
for C being image of A
for G being GeneratorSystem over S,X,A st G is C -supported holds
for s being Element of C -States the generators of G
for r being SortSymbol of S
for v being Element of C,r
for t being Element of G,r
for b10 being Element of C -States the generators of G holds
( b10 = succ (s,t,v) iff ( (b10 . r) . t = v & ( for p being SortSymbol of S
for x being Element of (FreeGen X) . p st ( p = r implies x <> t ) holds
( ( x nin (vf t) . p implies (b10 . p) . x = (s . p) . x ) & ( for u being ManySortedFunction of FreeGen X, the Sorts of C
for H being ManySortedSubset of the generators of G st H = FreeGen X holds
for f being ManySortedFunction of the generators of G, the Sorts of C st f = s & u = (f || H) +* (r,(supp-var t),v) & x in (vf t) . p holds
for q being Element of A,p st q = ((supp-term t) . p) . x holds
(b10 . p) . x = q value_at (C,u) ) ) ) ) );
definition
let B be non
empty non
void ManySortedSign ;
let Y be
V2()
ManySortedSet of the
carrier of
B;
let T be
Y,
B -terms all_vars_including inheriting_operations free_in_itself vf-free VarMSAlgebra over
B;
let C be
image of
T;
let X be
GeneratorSystem over
B,
Y,
T;
let A be
preIfWhileAlgebra of the
generators of
X;
let a be
SortSymbol of
B;
let x be
Element of the
generators of
X . a;
let z be
Element of
C,
a;
func C -Execution (
A,
x,
z)
-> Subset of
(Funcs ([:(C -States the generators of X), the carrier of A:],(C -States the generators of X))) means
for
f being
Function of
[:(C -States the generators of X), the carrier of A:],
(C -States the generators of X) holds
(
f in it iff (
f is
ExecutionFunction of
A,
C -States the
generators of
X,
z -States ( the
generators of
X,
x) & ( for
s being
Element of
C -States the
generators of
X for
b being
SortSymbol of
B for
v being
Element of the
generators of
X . b for
v0 being
Element of
X,
b st
v0 = v holds
for
t being
Element of
T,
b holds
f . (
s,
(v := (t,A)))
= succ (
s,
v0,
(t value_at (C,s))) ) ) );
existence
ex b1 being Subset of (Funcs ([:(C -States the generators of X), the carrier of A:],(C -States the generators of X))) st
for f being Function of [:(C -States the generators of X), the carrier of A:],(C -States the generators of X) holds
( f in b1 iff ( f is ExecutionFunction of A,C -States the generators of X,z -States ( the generators of X,x) & ( for s being Element of C -States the generators of X
for b being SortSymbol of B
for v being Element of the generators of X . b
for v0 being Element of X,b st v0 = v holds
for t being Element of T,b holds f . (s,(v := (t,A))) = succ (s,v0,(t value_at (C,s))) ) ) )
uniqueness
for b1, b2 being Subset of (Funcs ([:(C -States the generators of X), the carrier of A:],(C -States the generators of X))) st ( for f being Function of [:(C -States the generators of X), the carrier of A:],(C -States the generators of X) holds
( f in b1 iff ( f is ExecutionFunction of A,C -States the generators of X,z -States ( the generators of X,x) & ( for s being Element of C -States the generators of X
for b being SortSymbol of B
for v being Element of the generators of X . b
for v0 being Element of X,b st v0 = v holds
for t being Element of T,b holds f . (s,(v := (t,A))) = succ (s,v0,(t value_at (C,s))) ) ) ) ) & ( for f being Function of [:(C -States the generators of X), the carrier of A:],(C -States the generators of X) holds
( f in b2 iff ( f is ExecutionFunction of A,C -States the generators of X,z -States ( the generators of X,x) & ( for s being Element of C -States the generators of X
for b being SortSymbol of B
for v being Element of the generators of X . b
for v0 being Element of X,b st v0 = v holds
for t being Element of T,b holds f . (s,(v := (t,A))) = succ (s,v0,(t value_at (C,s))) ) ) ) ) holds
b1 = b2
end;
::
deftheorem defines
-Execution AOFA_A00:def 27 :
for B being non empty non void ManySortedSign
for Y being V2() ManySortedSet of the carrier of B
for T being b2,b1 -terms all_vars_including inheriting_operations free_in_itself vf-free VarMSAlgebra over B
for C being image of T
for X being GeneratorSystem over B,Y,T
for A being preIfWhileAlgebra of the generators of X
for a being SortSymbol of B
for x being Element of the generators of X . a
for z being Element of C,a
for b10 being Subset of (Funcs ([:(C -States the generators of X), the carrier of A:],(C -States the generators of X))) holds
( b10 = C -Execution (A,x,z) iff for f being Function of [:(C -States the generators of X), the carrier of A:],(C -States the generators of X) holds
( f in b10 iff ( f is ExecutionFunction of A,C -States the generators of X,z -States ( the generators of X,x) & ( for s being Element of C -States the generators of X
for b being SortSymbol of B
for v being Element of the generators of X . b
for v0 being Element of X,b st v0 = v holds
for t being Element of T,b holds f . (s,(v := (t,A))) = succ (s,v0,(t value_at (C,s))) ) ) ) );
definition
let S be non
empty non
void bool-correct BoolSignature ;
let B be
non-empty MSAlgebra over
S;
set f = the
bool-sort of
S;
set L =
B;
A1:
the
connectives of
S . 1
is_of_type {} , the
bool-sort of
S
by Def30;
A2:
the
connectives of
S . 2
is_of_type <* the bool-sort of S*>, the
bool-sort of
S
by Def30;
A3:
the
connectives of
S . 3
is_of_type <* the bool-sort of S, the bool-sort of S*>, the
bool-sort of
S
by Def30;
A4:
len the
connectives of
S >= 3
by Def30;
then
( 1
<= len the
connectives of
S & 2
<= len the
connectives of
S )
by XXREAL_0:2;
then A5:
( 2
in dom the
connectives of
S & 1
in dom the
connectives of
S & 3
in dom the
connectives of
S )
by A4, FINSEQ_3:25;
A6:
( the
connectives of
S . 1
in rng the
connectives of
S &
rng the
connectives of
S c= the
carrier' of
S )
by A5, RELAT_1:def 19, FUNCT_1:def 3;
coherence
(Den ((In (( the connectives of S . 1), the carrier' of S)),B)) . {} is Element of B, the bool-sort of S
by A1, Th26, A6;
let p be
Element of
B, the
bool-sort of
S;
coherence
(Den ((In (( the connectives of S . 2), the carrier' of S)),B)) . <*p*> is Element of B, the bool-sort of S
by A2, Th27;
let q be
Element of
B, the
bool-sort of
S;
coherence
(Den ((In (( the connectives of S . 3), the carrier' of S)),B)) . <*p,q*> is Element of B, the bool-sort of S
by A3, Th28;
end;
definition
let i be
Nat;
let s be
set ;
let S be
BoolSignature ;
attr S is
i,
s integer means :
Def38:
(
len the
connectives of
S >= i + 6 & ex
I being
Element of
S st
(
I = s &
I <> the
bool-sort of
S & the
connectives of
S . i is_of_type {} ,
I & the
connectives of
S . (i + 1) is_of_type {} ,
I & the
connectives of
S . i <> the
connectives of
S . (i + 1) & the
connectives of
S . (i + 2) is_of_type <*I*>,
I & the
connectives of
S . (i + 3) is_of_type <*I,I*>,
I & the
connectives of
S . (i + 4) is_of_type <*I,I*>,
I & the
connectives of
S . (i + 5) is_of_type <*I,I*>,
I & the
connectives of
S . (i + 3) <> the
connectives of
S . (i + 4) & the
connectives of
S . (i + 3) <> the
connectives of
S . (i + 5) & the
connectives of
S . (i + 4) <> the
connectives of
S . (i + 5) & the
connectives of
S . (i + 6) is_of_type <*I,I*>, the
bool-sort of
S ) );
end;
::
deftheorem Def38 defines
integer AOFA_A00:def 38 :
for i being Nat
for s being set
for S being BoolSignature holds
( S is i,s integer iff ( len the connectives of S >= i + 6 & ex I being Element of S st
( I = s & I <> the bool-sort of S & the connectives of S . i is_of_type {} ,I & the connectives of S . (i + 1) is_of_type {} ,I & the connectives of S . i <> the connectives of S . (i + 1) & the connectives of S . (i + 2) is_of_type <*I*>,I & the connectives of S . (i + 3) is_of_type <*I,I*>,I & the connectives of S . (i + 4) is_of_type <*I,I*>,I & the connectives of S . (i + 5) is_of_type <*I,I*>,I & the connectives of S . (i + 3) <> the connectives of S . (i + 4) & the connectives of S . (i + 3) <> the connectives of S . (i + 5) & the connectives of S . (i + 4) <> the connectives of S . (i + 5) & the connectives of S . (i + 6) is_of_type <*I,I*>, the bool-sort of S ) ) );
theorem Th48:
for
S being non
empty non
void 4,1
integer BoolSignature for
I being
integer SortSymbol of
S holds
(
I <> the
bool-sort of
S & the
connectives of
S . 4
is_of_type {} ,
I & the
connectives of
S . (4 + 1) is_of_type {} ,
I & the
connectives of
S . 4
<> the
connectives of
S . (4 + 1) & the
connectives of
S . (4 + 2) is_of_type <*I*>,
I & the
connectives of
S . (4 + 3) is_of_type <*I,I*>,
I & the
connectives of
S . (4 + 4) is_of_type <*I,I*>,
I & the
connectives of
S . (4 + 5) is_of_type <*I,I*>,
I & the
connectives of
S . (4 + 3) <> the
connectives of
S . (4 + 4) & the
connectives of
S . (4 + 3) <> the
connectives of
S . (4 + 5) & the
connectives of
S . (4 + 4) <> the
connectives of
S . (4 + 5) & the
connectives of
S . (4 + 6) is_of_type <*I,I*>, the
bool-sort of
S )
definition
let S be non
empty non
void 4,1
integer BoolSignature ;
let A be
non-empty MSAlgebra over
S;
let I be
integer SortSymbol of
S;
set f = the
bool-sort of
S;
set L =
A;
A1:
(
I = 1 &
I <> the
bool-sort of
S & the
connectives of
S . 4
is_of_type {} ,
I & the
connectives of
S . (4 + 1) is_of_type {} ,
I & the
connectives of
S . 4
<> the
connectives of
S . (4 + 1) & the
connectives of
S . (4 + 2) is_of_type <*I*>,
I & the
connectives of
S . (4 + 3) is_of_type <*I,I*>,
I & the
connectives of
S . (4 + 4) is_of_type <*I,I*>,
I & the
connectives of
S . (4 + 5) is_of_type <*I,I*>,
I & the
connectives of
S . (4 + 3) <> the
connectives of
S . (4 + 4) & the
connectives of
S . (4 + 3) <> the
connectives of
S . (4 + 5) & the
connectives of
S . (4 + 4) <> the
connectives of
S . (4 + 5) & the
connectives of
S . (4 + 6) is_of_type <*I,I*>, the
bool-sort of
S )
by Def39, Th48;
len the
connectives of
S >= 4
+ 6
by Def38;
then
( 4
<= len the
connectives of
S & 5
<= len the
connectives of
S & 6
<= len the
connectives of
S & 7
<= len the
connectives of
S & 8
<= len the
connectives of
S & 9
<= len the
connectives of
S & 10
<= len the
connectives of
S )
by XXREAL_0:2;
then A2:
( 4
in dom the
connectives of
S & 5
in dom the
connectives of
S & 6
in dom the
connectives of
S & 7
in dom the
connectives of
S & 8
in dom the
connectives of
S & 9
in dom the
connectives of
S & 10
in dom the
connectives of
S )
by FINSEQ_3:25;
A3:
( the
connectives of
S . 4
in rng the
connectives of
S &
rng the
connectives of
S c= the
carrier' of
S )
by A2, RELAT_1:def 19, FUNCT_1:def 3;
coherence
(Den ((In (( the connectives of S . 4), the carrier' of S)),A)) . {} is Element of the Sorts of A . I
by Th48, Th26, A3;
A4:
( the
connectives of
S . 5
in rng the
connectives of
S &
rng the
connectives of
S c= the
carrier' of
S )
by A2, RELAT_1:def 19, FUNCT_1:def 3;
coherence
(Den ((In (( the connectives of S . 5), the carrier' of S)),A)) . {} is Element of the Sorts of A . I
by Th48, Th26, A4;
let a be
Element of the
Sorts of
A . I;
coherence
(Den ((In (( the connectives of S . 6), the carrier' of S)),A)) . <*a*> is Element of the Sorts of A . I
by A1, Th27;
let b be
Element of the
Sorts of
A . I;
coherence
(Den ((In (( the connectives of S . 7), the carrier' of S)),A)) . <*a,b*> is Element of the Sorts of A . I
by A1, Th28;
coherence
(Den ((In (( the connectives of S . 8), the carrier' of S)),A)) . <*a,b*> is Element of the Sorts of A . I
by A1, Th28;
coherence
(Den ((In (( the connectives of S . 9), the carrier' of S)),A)) . <*a,b*> is Element of the Sorts of A . I
by A1, Th28;
coherence
(Den ((In (( the connectives of S . 10), the carrier' of S)),A)) . <*a,b*> is Element of the Sorts of A . the bool-sort of S
by A1, Th28;
end;
definition
let n be
Nat;
let s be
set ;
let S be non
empty non
void bool-correct BoolSignature ;
let A be
bool-correct MSAlgebra over
S;
attr A is
n,
s integer means :
Def49:
ex
I being
SortSymbol of
S st
(
I = s & the
connectives of
S . n is_of_type {} ,
I & the
Sorts of
A . I = INT &
(Den ((In (( the connectives of S . n), the carrier' of S)),A)) . {} = 0 &
(Den ((In (( the connectives of S . (n + 1)), the carrier' of S)),A)) . {} = 1 & ( for
i,
j being
Integer holds
(
(Den ((In (( the connectives of S . (n + 2)), the carrier' of S)),A)) . <*i*> = - i &
(Den ((In (( the connectives of S . (n + 3)), the carrier' of S)),A)) . <*i,j*> = i + j &
(Den ((In (( the connectives of S . (n + 4)), the carrier' of S)),A)) . <*i,j*> = i * j & (
j <> 0 implies
(Den ((In (( the connectives of S . (n + 5)), the carrier' of S)),A)) . <*i,j*> = i div j ) &
(Den ((In (( the connectives of S . (n + 6)), the carrier' of S)),A)) . <*i,j*> = IFGT (
i,
j,
FALSE,
TRUE) ) ) );
end;
::
deftheorem Def49 defines
integer AOFA_A00:def 49 :
for n being Nat
for s being set
for S being non empty non void bool-correct BoolSignature
for A being bool-correct MSAlgebra over S holds
( A is n,s integer iff ex I being SortSymbol of S st
( I = s & the connectives of S . n is_of_type {} ,I & the Sorts of A . I = INT & (Den ((In (( the connectives of S . n), the carrier' of S)),A)) . {} = 0 & (Den ((In (( the connectives of S . (n + 1)), the carrier' of S)),A)) . {} = 1 & ( for i, j being Integer holds
( (Den ((In (( the connectives of S . (n + 2)), the carrier' of S)),A)) . <*i*> = - i & (Den ((In (( the connectives of S . (n + 3)), the carrier' of S)),A)) . <*i,j*> = i + j & (Den ((In (( the connectives of S . (n + 4)), the carrier' of S)),A)) . <*i,j*> = i * j & ( j <> 0 implies (Den ((In (( the connectives of S . (n + 5)), the carrier' of S)),A)) . <*i,j*> = i div j ) & (Den ((In (( the connectives of S . (n + 6)), the carrier' of S)),A)) . <*i,j*> = IFGT (i,j,FALSE,TRUE) ) ) ) );
theorem
for
S being non
empty non
void bool-correct 4,1
integer BoolSignature for
A being
non-empty bool-correct 4,1
integer MSAlgebra over
S for
I being
integer SortSymbol of
S holds
( the
Sorts of
A . I = INT &
\0 (
A,
I)
= 0 &
\1 (
A,
I)
= 1 & ( for
i,
j being
Integer for
a,
b being
Element of the
Sorts of
A . I st
a = i &
b = j holds
(
- a = - i &
a + b = i + j &
a * b = i * j & (
j <> 0 implies
a div b = i div j ) &
leq (
a,
b)
= IFGT (
i,
j,
FALSE,
TRUE) & (
leq (
a,
b)
= TRUE implies
i <= j ) & (
i <= j implies
leq (
a,
b)
= TRUE ) & (
leq (
a,
b)
= FALSE implies
i > j ) & (
i > j implies
leq (
a,
b)
= FALSE ) ) ) )
definition
let I,
N be
set ;
let n be
Nat;
let S be
ConnectivesSignature ;
attr S is
n,
I,
N -array means :
Def50:
(
len the
connectives of
S >= n + 3 & ex
J,
K,
L being
Element of
S st
(
L = I &
K = N &
J <> L &
J <> K & the
connectives of
S . n is_of_type <*J,K*>,
L & the
connectives of
S . (n + 1) is_of_type <*J,K,L*>,
J & the
connectives of
S . (n + 2) is_of_type <*J*>,
K & the
connectives of
S . (n + 3) is_of_type <*K,L*>,
J ) );
end;
::
deftheorem Def50 defines
-array AOFA_A00:def 50 :
for I, N being set
for n being Nat
for S being ConnectivesSignature holds
( S is n,I,N -array iff ( len the connectives of S >= n + 3 & ex J, K, L being Element of S st
( L = I & K = N & J <> L & J <> K & the connectives of S . n is_of_type <*J,K*>,L & the connectives of S . (n + 1) is_of_type <*J,K,L*>,J & the connectives of S . (n + 2) is_of_type <*J*>,K & the connectives of S . (n + 3) is_of_type <*K,L*>,J ) ) );
definition
let S be non
empty non
void ConnectivesSignature ;
let I,
N be
set ;
let n be
Nat;
let A be
MSAlgebra over
S;
attr A is
n,
I,
N -array means
ex
J,
K being
Element of
S st
(
K = I & the
connectives of
S . n is_of_type <*J,N*>,
K & the
Sorts of
A . J = ( the Sorts of A . K) ^omega & the
Sorts of
A . N = INT & ( for
a being
finite 0 -based array of the
Sorts of
A . K holds
( ( for
i being
Integer st
i in dom a holds
(
(Den (( the connectives of S /. n),A)) . <*a,i*> = a . i & ( for
x being
Element of
A,
K holds
(Den (( the connectives of S /. (n + 1)),A)) . <*a,i,x*> = a +* (
i,
x) ) ) ) &
(Den (( the connectives of S /. (n + 2)),A)) . <*a*> = card a ) ) & ( for
i being
Integer for
x being
Element of
A,
K st
i >= 0 holds
(Den (( the connectives of S /. (n + 3)),A)) . <*i,x*> = (Segm i) --> x ) );
end;
::
deftheorem defines
-array AOFA_A00:def 51 :
for S being non empty non void ConnectivesSignature
for I, N being set
for n being Nat
for A being MSAlgebra over S holds
( A is n,I,N -array iff ex J, K being Element of S st
( K = I & the connectives of S . n is_of_type <*J,N*>,K & the Sorts of A . J = ( the Sorts of A . K) ^omega & the Sorts of A . N = INT & ( for a being finite 0 -based array of the Sorts of A . K holds
( ( for i being Integer st i in dom a holds
( (Den (( the connectives of S /. n),A)) . <*a,i*> = a . i & ( for x being Element of A,K holds (Den (( the connectives of S /. (n + 1)),A)) . <*a,i,x*> = a +* (i,x) ) ) ) & (Den (( the connectives of S /. (n + 2)),A)) . <*a*> = card a ) ) & ( for i being Integer
for x being Element of A,K st i >= 0 holds
(Den (( the connectives of S /. (n + 3)),A)) . <*i,x*> = (Segm i) --> x ) ) );
definition
let B be non
empty BoolSignature ;
let C be non
empty ConnectivesSignature ;
uniqueness
for b1, b2 being strict BoolSignature st ManySortedSign(# the carrier of b1, the carrier' of b1, the Arity of b1, the ResultSort of b1 #) = B +* C & the bool-sort of b1 = the bool-sort of B & the connectives of b1 = the connectives of B ^ the connectives of C & ManySortedSign(# the carrier of b2, the carrier' of b2, the Arity of b2, the ResultSort of b2 #) = B +* C & the bool-sort of b2 = the bool-sort of B & the connectives of b2 = the connectives of B ^ the connectives of C holds
b1 = b2
;
existence
ex b1 being strict BoolSignature st
( ManySortedSign(# the carrier of b1, the carrier' of b1, the Arity of b1, the ResultSort of b1 #) = B +* C & the bool-sort of b1 = the bool-sort of B & the connectives of b1 = the connectives of B ^ the connectives of C )
end;
definition
let S be non
empty non
void 11,1,1
-array BoolSignature ;
consider J,
K,
L being
Element of
S such that A1:
(
L = 1 &
K = 1 &
J <> L &
J <> K & the
connectives of
S . 11
is_of_type <*J,K*>,
L & the
connectives of
S . (11 + 1) is_of_type <*J,K,L*>,
J & the
connectives of
S . (11 + 2) is_of_type <*J*>,
K & the
connectives of
S . (11 + 3) is_of_type <*K,L*>,
J )
by Def50;
coherence
the ResultSort of S . ( the connectives of S . 12) is SortSymbol of S
by A1;
end;
definition
let S be non
empty non
void 4,1
integer 11,1,1
-array BoolSignature ;
let A be
non-empty MSAlgebra over
S;
let a be
Element of the
Sorts of
A . (the_array_sort_of S);
let I be
integer SortSymbol of
S;
consider J,
K,
L being
Element of
S such that A1:
(
L = 1 &
K = 1 &
J <> L &
J <> K & the
connectives of
S . 11
is_of_type <*J,K*>,
L & the
connectives of
S . (11 + 1) is_of_type <*J,K,L*>,
J & the
connectives of
S . (11 + 2) is_of_type <*J*>,
K & the
connectives of
S . (11 + 3) is_of_type <*K,L*>,
J )
by Def50;
A2:
I = 1
by Def39;
coherence
(Den ((In (( the connectives of S . 13), the carrier' of S)),A)) . <*a*> is Element of the Sorts of A . I
by A1, A2, Th27;
let i be
Element of the
Sorts of
A . I;
coherence
(Den ((In (( the connectives of S . 11), the carrier' of S)),A)) . <*a,i*> is Element of the Sorts of A . I
by A1, A2, Th28;
let x be
Element of the
Sorts of
A . I;
coherence
(Den ((In (( the connectives of S . 12), the carrier' of S)),A)) . <*a,i,x*> is Element of the Sorts of A . (the_array_sort_of S)
by A1, A2, Th29;
end;
definition
let S be non
empty non
void 4,1
integer 11,1,1
-array BoolSignature ;
let A be
non-empty MSAlgebra over
S;
let I be
integer SortSymbol of
S;
consider J,
K,
L being
Element of
S such that A1:
(
L = 1 &
K = 1 &
J <> L &
J <> K & the
connectives of
S . 11
is_of_type <*J,K*>,
L & the
connectives of
S . (11 + 1) is_of_type <*J,K,L*>,
J & the
connectives of
S . (11 + 2) is_of_type <*J*>,
K & the
connectives of
S . (11 + 3) is_of_type <*K,L*>,
J )
by Def50;
A2:
I = 1
by Def39;
let i,
x be
Element of the
Sorts of
A . I;
coherence
(Den ((In (( the connectives of S . 14), the carrier' of S)),A)) . <*i,x*> is Element of the Sorts of A . (the_array_sort_of S)
by A1, A2, Th28;
end;
theorem Th59:
for
n,
m being
Nat for
s,
r being
set st
n >= 1 &
m >= 1 holds
for
B being non
empty non
void b2 -connectives BoolSignature for
A1 being
non-empty MSAlgebra over
B for
C being non
empty non
void ConnectivesSignature st
C is
n,
s,
r -array holds
for
A2 being
non-empty MSAlgebra over
C st the
Sorts of
A1 tolerates the
Sorts of
A2 &
A2 is
n,
s,
r -array holds
for
S being non
empty non
void BoolSignature st
BoolSignature(# the
carrier of
S, the
carrier' of
S, the
Arity of
S, the
ResultSort of
S, the
bool-sort of
S, the
connectives of
S #)
= B +* C holds
for
A being
non-empty MSAlgebra over
S st
A = (
B,
A1)
+* A2 holds
A is
m + n,
s,
r -array
theorem Th63:
for
j,
k being
set for
i,
m,
n being
Nat st
m >= 4 &
m + 6
<= n &
i >= 1 holds
for
S being non
empty non
void 1-1-connectives bool-correct BoolSignature st
S is
n + i,
j,
k -array &
S is
m,
k integer holds
ex
B being non
empty non
void bool-correct BoolSignature ex
C being non
empty non
void ConnectivesSignature st
(
BoolSignature(# the
carrier of
S, the
carrier' of
S, the
Arity of
S, the
ResultSort of
S, the
bool-sort of
S, the
connectives of
S #)
= B +* C &
B is
n -connectives &
B is
m,
k integer &
C is
i,
j,
k -array & the
carrier of
B = the
carrier of
C & the
carrier' of
B = the
carrier' of
S \ (rng the connectives of C) & the
carrier' of
C = rng the
connectives of
C & the
connectives of
B = the
connectives of
S | n & the
connectives of
C = the
connectives of
S /^ n )
::$CT 5