aofa_a00.miz
begin
reserve i for
Nat,
x,y for
set;
reserve S for non
empty non
void
ManySortedSign;
reserve X for
non-empty
ManySortedSet of S;
theorem ::
AOFA_A00:1
Th1: for A,B be
set holds for R be A
-valued
Relation holds (R
.: B)
c= A
proof
let A,B be
set;
let R be A
-valued
Relation;
(R
.: B)
c= (
rng R) & (
rng R)
c= A by
RELAT_1: 111,
RELAT_1:def 19;
hence (R
.: B)
c= A;
end;
definition
let I be
set;
let f be
ManySortedSet of I;
let i be
object;
let x;
:: original:
+*
redefine
func f
+* (i,x) ->
ManySortedSet of I ;
coherence ;
end
registration
let I be
set;
let f be
non-empty
ManySortedSet of I;
let i be
object;
let x be non
empty
set;
cluster (f
+* (i,x)) ->
non-empty;
coherence
proof
now
thus (f
+* (i,x)) is
ManySortedSet of I;
let y be
object;
assume
A1: y
in I;
(
dom f)
= I by
PARTFUN1:def 2;
then (y
<> i implies ((f
+* (i,x))
. y)
= (f
. y)) & (y
= i implies ((f
+* (i,x))
. y)
= x) by
A1,
FUNCT_7: 31,
FUNCT_7: 32;
hence ((f
+* (i,x))
. y) is non
empty by
A1;
end;
hence thesis;
end;
end
theorem ::
AOFA_A00:2
Th2: for I be
set holds for f,g be
ManySortedSet of I st f
c= g holds (f
# )
c= (g
# )
proof
let I be
set;
let f,g be
ManySortedSet of I;
assume
A1: f
c= g;
let x be
object;
assume x
in (I
* );
then
reconsider p = x as
Element of (I
* );
A2: ((f
# )
. p)
= (
product (f
* p)) & ((g
# )
. p)
= (
product (g
* p)) by
FINSEQ_2:def 5;
let y be
object;
assume y
in ((f
# )
. x);
then
consider h be
Function such that
A3: y
= h & (
dom h)
= (
dom (f
* p)) & for x be
object st x
in (
dom (f
* p)) holds (h
. x)
in ((f
* p)
. x) by
A2,
CARD_3:def 5;
p is
FinSequence of I by
FINSEQ_1:def 11;
then
A4: (
dom f)
= I & (
dom g)
= I & (
rng p)
c= I by
PARTFUN1:def 2,
FINSEQ_1:def 4;
then
A5: (
dom (f
* p))
= (
dom p) & (
dom (g
* p))
= (
dom p) by
RELAT_1: 27;
now
let x be
object;
assume x
in (
dom (g
* p));
then
A6: (h
. x)
in ((f
* p)
. x) & ((f
* p)
. x)
= (f
. (p
. x)) & ((g
* p)
. x)
= (g
. (p
. x)) & (p
. x)
in (
rng p) by
A3,
A5,
FUNCT_1: 13,
FUNCT_1:def 3;
then (f
. (p
. x))
c= (g
. (p
. x)) by
A4,
A1;
hence (h
. x)
in ((g
* p)
. x) by
A6;
end;
hence y
in ((g
# )
. x) by
A2,
A3,
A5,
CARD_3: 9;
end;
theorem ::
AOFA_A00:3
for I be non
empty
set holds for J be
set holds for A,B be
ManySortedSet of I st A
c= B holds for f be
Function of J, I holds (A
* f)
c= (B
* f)
proof
let I be non
empty
set;
let J be
set;
let A,B be
ManySortedSet of I;
assume
A1: A
c= B;
let f be
Function of J, I;
let x be
object;
assume
A2: x
in J;
then
reconsider i = (f
. x) as
Element of I by
FUNCT_2: 5;
((A
* f)
. x)
= (A
. i) & ((B
* f)
. x)
= (B
. i) by
A2,
FUNCT_2: 15;
hence ((A
* f)
. x)
c= ((B
* f)
. x) by
A1;
end;
registration
let f be
Function-yielding
Function;
cluster (
Frege f) ->
Function-yielding;
coherence
proof
let x be
object;
assume
A1: x
in (
dom (
Frege f));
then
A2: x
in (
product (
doms f)) by
FUNCT_6:def 7;
reconsider x as
Element of (
product (
doms f)) by
A1,
FUNCT_6:def 7;
consider h be
Function such that
A3: ((
Frege f)
. x)
= h & (
dom h)
= (
dom f) & for y be
object st y
in (
dom h) holds (h
. y)
= ((
uncurry f)
. (y,(x
. y))) by
A2,
FUNCT_6:def 7;
thus thesis by
A3;
end;
end
theorem ::
AOFA_A00:4
for f,g be
Function-yielding
Function holds (
doms (f
* g))
= ((
doms f)
* g)
proof
let f,g be
Function-yielding
Function;
A1: (
dom (
doms (f
* g)))
= (
dom (f
* g)) & (
dom (
doms f))
= (
dom f) by
FUNCT_6:def 2;
A2: (
dom (
doms (f
* g)))
= (
dom ((
doms f)
* g))
proof
thus (
dom (
doms (f
* g)))
c= (
dom ((
doms f)
* g))
proof
let x be
object;
assume x
in (
dom (
doms (f
* g)));
then x
in (
dom (f
* g)) & ((f
* g)
. x) is
Function by
A1;
then
A3: x
in (
dom g) & (g
. x)
in (
dom f) & ((f
* g)
. x)
= (f
. (g
. x)) by
FUNCT_1: 11,
FUNCT_1: 12;
then (g
. x)
in (
dom (
doms f)) by
FUNCT_6: 22;
hence thesis by
A3,
FUNCT_1: 11;
end;
let x be
object;
assume x
in (
dom ((
doms f)
* g));
then
A4: x
in (
dom g) & (g
. x)
in (
dom (
doms f)) by
FUNCT_1: 11;
then
A5: (g
. x)
in (
dom f) & (f
. (g
. x)) is
Function & (f
. (g
. x))
= ((f
* g)
. x) by
A1,
FUNCT_1: 13;
then x
in (
dom (f
* g)) by
A4,
FUNCT_1: 11;
hence thesis by
A5,
FUNCT_6: 22;
end;
now
let x be
object;
assume x
in (
dom (
doms (f
* g)));
then
A6: x
in (
dom g) & (g
. x)
in (
dom (
doms f)) & ((
doms (f
* g))
. x)
= (
proj1 ((f
* g)
. x)) by
A1,
FUNCT_1: 11,
FUNCT_6:def 2;
then
A7: ((
doms f)
. (g
. x))
= (
proj1 (f
. (g
. x))) by
A1,
FUNCT_6:def 2;
thus ((
doms (f
* g))
. x)
= ((
doms f)
. (g
. x)) by
A6,
A7,
FUNCT_1: 13
.= (((
doms f)
* g)
. x) by
A6,
FUNCT_1: 13;
end;
hence (
doms (f
* g))
= ((
doms f)
* g) by
A2;
end;
theorem ::
AOFA_A00:5
Th5: for f,g be
Function st g
= (f
. x) holds (g
. y)
= (f
.. (x,y))
proof
let f,g be
Function such that
A1: g
= (f
. x);
A2: (f
.. (x,y))
= ((
uncurry f)
. (x,y)) by
FUNCT_6:def 5;
per cases ;
suppose x
in (
dom f) & y
in (
dom g);
then
A3:
[x, y]
in (
dom (
uncurry f)) & (f
. (
[x, y]
`1 )) is
Function by
A1,
FUNCT_5:def 2;
(
[x, y]
`1 )
= x & (
[x, y]
`2 )
= y;
hence (g
. y)
= (f
.. (x,y)) by
A1,
A2,
A3,
FUNCT_5:def 2;
end;
suppose
A4: y
nin (
dom g) or x
nin (
dom f);
then
A5: ((f
. x)
=
0 or (g
. y)
=
0 ) & (
dom
{} )
=
{} by
FUNCT_1:def 2;
now
assume
[x, y]
in (
dom (
uncurry f));
then
consider a be
object, h be
Function, b be
object such that
A6:
[x, y]
=
[a, b] & a
in (
dom f) & h
= (f
. a) & b
in (
dom h) by
FUNCT_5:def 2;
a
= x & b
= y by
A6,
XTUPLE_0: 1;
hence contradiction by
A1,
A4,
A6;
end;
then (f
.. (x,y))
=
0 & (g
. y)
=
0 by
A1,
A2,
A5,
FUNCT_1:def 2;
hence (g
. y)
= (f
.. (x,y));
end;
end;
definition
let I be
set;
let i be
Element of I;
let x;
::
AOFA_A00:def1
func i
-singleton (x) ->
ManySortedSet of I equals ((
EmptyMS I)
+* (i,
{x}));
coherence ;
end
theorem ::
AOFA_A00:6
Th6: for I be non
empty
set holds for i,j be
Element of I holds for x holds ((i
-singleton x)
. i)
=
{x} & (i
<> j implies ((i
-singleton x)
. j)
=
{} )
proof
let I be non
empty
set;
let i,j be
Element of I;
let x;
(
dom (
EmptyMS I))
= I by
PARTFUN1:def 2;
hence ((i
-singleton x)
. i)
=
{x} by
FUNCT_7: 31;
assume i
<> j;
hence ((i
-singleton x)
. j)
= ((
EmptyMS I)
. j) by
FUNCT_7: 32
.=
{} ;
end;
theorem ::
AOFA_A00:7
for I be non
empty
set holds for i be
Element of I holds for A be
ManySortedSet of I holds for x st x
in (A
. i) holds (i
-singleton x) is
ManySortedSubset of A
proof
let I be non
empty
set;
let i be
Element of I;
let A be
ManySortedSet of I;
let x;
assume
A1: x
in (A
. i);
let y be
object;
assume y
in I;
then (y
= i implies ((i
-singleton x)
. y)
=
{x}) & (y
<> i implies ((i
-singleton x)
. y)
=
{} ) by
Th6;
hence ((i
-singleton x)
. y)
c= (A
. y) by
A1,
ZFMISC_1: 31;
end;
definition
let I be
set;
let A,B be
ManySortedSet of I;
let F be
ManySortedFunction of A, B;
let i be
set;
let j be
set;
let v be
set;
::
AOFA_A00:def2
func F
+* (i,j,v) ->
ManySortedFunction of A, B means (it
. i)
= ((F
. i)
+* (j,v)) & for s be
set st s
in I & s
<> i holds (it
. s)
= (F
. s);
existence
proof
defpred
P[
object,
object] means ($1
= i implies $2
= ((F
. i)
+* (j,v))) & ($1
<> i implies $2
= (F
. $1));
A4: for x be
object st x
in I holds ex y be
object st
P[x, y]
proof
let x be
object;
assume x
in I;
per cases ;
suppose
A5: x
= i;
take ((F
. i)
+* (j,v));
thus thesis by
A5;
end;
suppose
A6: x
<> i;
take (F
. x);
thus thesis by
A6;
end;
end;
consider f be
Function such that
A7: (
dom f)
= I & for x be
object st x
in I holds
P[x, (f
. x)] from
CLASSES1:sch 1(
A4);
reconsider f as
ManySortedSet of I by
A7,
RELAT_1:def 18,
PARTFUN1:def 2;
f is
Function-yielding
proof
let x be
object;
assume x
in (
dom f);
then (x
= i implies (f
. x)
= ((F
. i)
+* (j,v))) & (x
<> i implies (f
. x)
= (F
. x)) by
A7;
hence thesis;
end;
then
reconsider f as
ManySortedFunction of I;
f is
ManySortedFunction of A, B
proof
reconsider j as
Element of (A
. i) by
A2;
reconsider v as
Element of (B
. i) by
A3;
let x be
object;
assume x
in I;
then
A8:
P[x, (f
. x)] & ((F
. i)
+* (j,v)) is
Function of (A
. i), (B
. i) by
A7;
thus thesis by
A8;
end;
then
reconsider f as
ManySortedFunction of A, B;
take f;
thus (f
. i)
= ((F
. i)
+* (j,v)) by
A1,
A7;
thus thesis by
A7;
end;
uniqueness
proof
let f1,f2 be
ManySortedFunction of A, B such that
A9: (f1
. i)
= ((F
. i)
+* (j,v)) & for s be
set st s
in I & s
<> i holds (f1
. s)
= (F
. s) and
A10: (f2
. i)
= ((F
. i)
+* (j,v)) & for s be
set st s
in I & s
<> i holds (f2
. s)
= (F
. s);
now
let x be
object;
assume
A11: x
in I;
per cases ;
suppose x
= i;
hence (f1
. x)
= (f2
. x) by
A9,
A10;
end;
suppose x
<> i;
then (f1
. x)
= (F
. x) & (f2
. x)
= (F
. x) by
A9,
A10,
A11;
hence (f1
. x)
= (f2
. x);
end;
end;
hence thesis;
end;
end
::$Canceled
::$Canceled
theorem ::
AOFA_A00:13
for X be
set, a1,a2,a3,a4,a5,a6 be
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 ::
AOFA_A00:14
for X be
set, a1,a2,a3,a4,a5,a6,a7,a8,a9 be
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 ::
AOFA_A00:15
Th10: for X be
set, a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 be
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 ::
AOFA_A00:16
for a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object holds (
{a1}
\/
{a2, a3, a4, a5, a6, a7, a8, a9})
=
{a1, a2, a3, a4, a5, a6, a7, a8, a9}
proof
let a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object;
thus (
{a1}
\/
{a2, a3, a4, a5, a6, a7, a8, a9})
c=
{a1, a2, a3, a4, a5, a6, a7, a8, a9}
proof
let x be
object;
assume x
in (
{a1}
\/
{a2, a3, a4, a5, a6, a7, a8, a9});
then x
in
{a1} or x
in
{a2, a3, a4, a5, a6, a7, a8, a9} by
XBOOLE_0:def 3;
then x
= a1 or x
= a2 or x
= a3 or x
= a4 or x
= a5 or x
= a6 or x
= a7 or x
= a8 or x
= a9 by
TARSKI:def 1,
ENUMSET1:def 6;
hence thesis by
ENUMSET1:def 7;
end;
let x be
object;
assume x
in
{a1, a2, a3, a4, a5, a6, a7, a8, a9};
then x
= a1 or x
= a2 or x
= a3 or x
= a4 or x
= a5 or x
= a6 or x
= a7 or x
= a8 or x
= a9 by
ENUMSET1:def 7;
then x
in
{a1} or x
in
{a2, a3, a4, a5, a6, a7, a8, a9} by
TARSKI:def 1,
ENUMSET1:def 6;
hence thesis by
XBOOLE_0:def 3;
end;
theorem ::
AOFA_A00:17
Th12: for a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 be
object holds (
{a1}
\/
{a2, a3, a4, a5, a6, a7, a8, a9, a10})
=
{a1, a2, a3, a4, a5, a6, a7, a8, a9, a10}
proof
let a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 be
object;
thus (
{a1}
\/
{a2, a3, a4, a5, a6, a7, a8, a9, a10})
c=
{a1, a2, a3, a4, a5, a6, a7, a8, a9, a10}
proof
let x be
object;
assume x
in (
{a1}
\/
{a2, a3, a4, a5, a6, a7, a8, a9, a10});
then x
in
{a1} or x
in
{a2, a3, a4, a5, a6, a7, a8, a9, a10} by
XBOOLE_0:def 3;
then x
= a1 or x
= a2 or x
= a3 or x
= a4 or x
= a5 or x
= a6 or x
= a7 or x
= a8 or x
= a9 or x
= a10 by
TARSKI:def 1,
ENUMSET1:def 7;
hence thesis by
ENUMSET1:def 8;
end;
let x be
object;
assume x
in
{a1, a2, a3, a4, a5, a6, a7, a8, a9, a10};
then x
= a1 or x
= a2 or x
= a3 or x
= a4 or x
= a5 or x
= a6 or x
= a7 or x
= a8 or x
= a9 or x
= a10 by
ENUMSET1:def 8;
then x
in
{a1} or x
in
{a2, a3, a4, a5, a6, a7, a8, a9, a10} by
TARSKI:def 1,
ENUMSET1:def 7;
hence thesis by
XBOOLE_0:def 3;
end;
theorem ::
AOFA_A00:18
Th13: for a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object holds (
{a1, a2, a3}
\/
{a4, a5, a6, a7, a8, a9})
=
{a1, a2, a3, a4, a5, a6, a7, a8, a9}
proof
let a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object;
thus (
{a1, a2, a3}
\/
{a4, a5, a6, a7, a8, a9})
c=
{a1, a2, a3, a4, a5, a6, a7, a8, a9}
proof
let x be
object;
assume x
in (
{a1, a2, a3}
\/
{a4, a5, a6, a7, a8, a9});
then x
in
{a1, a2, a3} or x
in
{a4, a5, a6, a7, a8, a9} by
XBOOLE_0:def 3;
then x
= a1 or x
= a2 or x
= a3 or x
= a4 or x
= a5 or x
= a6 or x
= a7 or x
= a8 or x
= a9 by
ENUMSET1:def 1,
ENUMSET1:def 4;
hence thesis by
ENUMSET1:def 7;
end;
let x be
object;
assume x
in
{a1, a2, a3, a4, a5, a6, a7, a8, a9};
then x
= a1 or x
= a2 or x
= a3 or x
= a4 or x
= a5 or x
= a6 or x
= a7 or x
= a8 or x
= a9 by
ENUMSET1:def 7;
then x
in
{a1, a2, a3} or x
in
{a4, a5, a6, a7, a8, a9} by
ENUMSET1:def 1,
ENUMSET1:def 4;
hence thesis by
XBOOLE_0:def 3;
end;
theorem ::
AOFA_A00:19
Th14: for a1,a2,a3,a4 be
object st a1
<> a2 & a1
<> a3 & a1
<> a4 & a2
<> a3 & a2
<> a4 & a3
<> a4 holds
<*a1, a2, a3, a4*> is
one-to-one
proof
let a1,a2,a3,a4 be
object;
assume
A1: a1
<> a2;
assume
A2: a1
<> a3;
assume
A3: a1
<> a4;
assume
A4: a2
<> a3;
assume
A5: a2
<> a4;
assume
A6: a3
<> a4;
A7: (
dom
<*a1, a2, a3, a4*>)
= (
Seg 4) by
FINSEQ_1: 89;
let x,y be
object;
assume x
in (
dom
<*a1, a2, a3, a4*>);
then
A8: x
= 1 or x
= 2 or x
= 3 or x
= 4 by
A7,
ENUMSET1:def 2,
FINSEQ_3: 2;
assume
A9: y
in (
dom
<*a1, a2, a3, a4*>);
(
<*a1, a2, a3, a4*>
. 1)
= a1 & (
<*a1, a2, a3, a4*>
. 2)
= a2 & (
<*a1, a2, a3, a4*>
. 3)
= a3 & (
<*a1, a2, a3, a4*>
. 4)
= a4 by
FINSEQ_4: 76;
hence thesis by
A1,
A2,
A3,
A4,
A5,
A6,
A8,
A7,
A9,
ENUMSET1:def 2,
FINSEQ_3: 2;
end;
definition
let a1,a2,a3,a4,a5,a6 be
object;
::
AOFA_A00:def3
func
<*a1,a2,a3,a4,a5,a6*> ->
FinSequence equals (
<*a1, a2, a3, a4, a5*>
^
<*a6*>);
coherence ;
end
definition
let X be non
empty
set;
let a1,a2,a3,a4,a5,a6 be
Element of X;
:: original:
<*
redefine
func
<*a1,a2,a3,a4,a5,a6*> ->
FinSequence of X ;
coherence
proof
(
<*a1, a2, a3, a4, a5*>
^
<*a6*>) is
FinSequence of X;
hence thesis;
end;
end
registration
let a1,a2,a3,a4,a5,a6 be
object;
cluster
<*a1, a2, a3, a4, a5, a6*> -> 6
-element;
coherence ;
end
theorem ::
AOFA_A00:20
for a1,a2,a3,a4,a5,a6 be
object holds for f be
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
proof
let a1,a2,a3,a4,a5,a6 be
object;
let f be
FinSequence;
A1:
now
let f be
FinSequence;
assume
A2: f
=
<*a1, a2, a3, a4, a5, a6*>;
hence (
len f)
= ((
len
<*a1, a2, a3, a4, a5*>)
+ (
len
<*a6*>)) by
FINSEQ_1: 22
.= (5
+ (
len
<*a6*>)) by
FINSEQ_4: 78
.= (5
+ 1) by
FINSEQ_1: 39
.= 6;
(
dom
<*a1, a2, a3, a4, a5*>)
= (
Seg 5) by
FINSEQ_1: 89;
then 1
in (
dom
<*a1, a2, a3, a4, a5*>) & 2
in (
dom
<*a1, a2, a3, a4, a5*>) & 3
in (
dom
<*a1, a2, a3, a4, a5*>) & 4
in (
dom
<*a1, a2, a3, a4, a5*>) & 5
in (
dom
<*a1, a2, a3, a4, a5*>);
then (f
. 1)
= (
<*a1, a2, a3, a4, a5*>
. 1) & (f
. 2)
= (
<*a1, a2, a3, a4, a5*>
. 2) & (f
. 3)
= (
<*a1, a2, a3, a4, a5*>
. 3) & (f
. 4)
= (
<*a1, a2, a3, a4, a5*>
. 4) & (f
. 5)
= (
<*a1, a2, a3, a4, a5*>
. 5) by
A2,
FINSEQ_1:def 7;
hence (f
. 1)
= a1 & (f
. 2)
= a2 & (f
. 3)
= a3 & (f
. 4)
= a4 & (f
. 5)
= a5 by
FINSEQ_4: 78;
A3: (
len
<*a1, a2, a3, a4, a5*>)
= 5 by
FINSEQ_4: 78;
1
in (
Seg 1);
then 1
in (
dom
<*a6*>) & (5
+ 1)
= 6 by
FINSEQ_1: 89;
hence (f
. 6)
= (
<*a6*>
. 1) by
A2,
A3,
FINSEQ_1:def 7
.= a6 by
FINSEQ_1: 40;
end;
hence f
=
<*a1, a2, a3, a4, a5, a6*> implies (
len f)
= 6 & (f
. 1)
= a1 & (f
. 2)
= a2 & (f
. 3)
= a3 & (f
. 4)
= a4 & (f
. 5)
= a5 & (f
. 6)
= a6;
assume
A4: (
len f)
= 6;
(
len
<*a1, a2, a3, a4, a5, a6*>)
= 6 by
A1;
then
A5: (
dom f)
= (
Seg 6) & (
dom
<*a1, a2, a3, a4, a5, a6*>)
= (
Seg 6) by
A4,
FINSEQ_1:def 3;
assume
A6: (f
. 1)
= a1;
assume
A7: (f
. 2)
= a2;
assume
A8: (f
. 3)
= a3;
assume
A9: (f
. 4)
= a4;
assume
A10: (f
. 5)
= a5;
assume
A11: (f
. 6)
= a6;
now
let x be
object;
assume x
in (
Seg 6);
then x
= 1 or x
= 2 or x
= 3 or x
= 4 or x
= 5 or x
= 6 by
FINSEQ_3: 4,
ENUMSET1:def 4;
hence (f
. x)
= (
<*a1, a2, a3, a4, a5, a6*>
. x) by
A1,
A6,
A7,
A8,
A9,
A10,
A11;
end;
hence f
=
<*a1, a2, a3, a4, a5, a6*> by
A5;
end;
theorem ::
AOFA_A00:21
for a1,a2,a3,a4,a5,a6 be
object holds (
rng
<*a1, a2, a3, a4, a5, a6*>)
=
{a1, a2, a3, a4, a5, a6}
proof
let a1,a2,a3,a4,a5,a6 be
object;
thus (
rng
<*a1, a2, a3, a4, a5, a6*>)
= ((
rng
<*a1, a2, a3, a4, a5*>)
\/ (
rng
<*a6*>)) by
FINSEQ_1: 31
.= (
{a1, a2, a3, a4, a5}
\/ (
rng
<*a6*>)) by
CIRCCMB3: 14
.= (
{a1, a2, a3, a4, a5}
\/
{a6}) by
FINSEQ_1: 39
.=
{a1, a2, a3, a4, a5, a6} by
ENUMSET1: 15;
end;
definition
let a1,a2,a3,a4,a5,a6,a7 be
object;
::
AOFA_A00:def4
func
<*a1,a2,a3,a4,a5,a6,a7*> ->
FinSequence equals (
<*a1, a2, a3, a4, a5*>
^
<*a6, a7*>);
coherence ;
end
definition
let X be non
empty
set;
let a1,a2,a3,a4,a5,a6,a7 be
Element of X;
:: original:
<*
redefine
func
<*a1,a2,a3,a4,a5,a6,a7*> ->
FinSequence of X ;
coherence
proof
(
<*a1, a2, a3, a4, a5*>
^
<*a6, a7*>) is
FinSequence of X;
hence thesis;
end;
end
registration
let a1,a2,a3,a4,a5,a6,a7 be
object;
cluster
<*a1, a2, a3, a4, a5, a6, a7*> -> 7
-element;
coherence ;
end
theorem ::
AOFA_A00:22
for a1,a2,a3,a4,a5,a6,a7 be
object holds for f be
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
proof
let a1,a2,a3,a4,a5,a6,a7 be
object;
let f be
FinSequence;
A1:
now
let f be
FinSequence;
assume
A2: f
=
<*a1, a2, a3, a4, a5, a6, a7*>;
hence (
len f)
= ((
len
<*a1, a2, a3, a4, a5*>)
+ (
len
<*a6, a7*>)) by
FINSEQ_1: 22
.= (5
+ (
len
<*a6, a7*>)) by
FINSEQ_4: 78
.= (5
+ 2) by
FINSEQ_1: 44
.= 7;
(
dom
<*a1, a2, a3, a4, a5*>)
= (
Seg 5) by
FINSEQ_1: 89;
then 1
in (
dom
<*a1, a2, a3, a4, a5*>) & 2
in (
dom
<*a1, a2, a3, a4, a5*>) & 3
in (
dom
<*a1, a2, a3, a4, a5*>) & 4
in (
dom
<*a1, a2, a3, a4, a5*>) & 5
in (
dom
<*a1, a2, a3, a4, a5*>);
then (f
. 1)
= (
<*a1, a2, a3, a4, a5*>
. 1) & (f
. 2)
= (
<*a1, a2, a3, a4, a5*>
. 2) & (f
. 3)
= (
<*a1, a2, a3, a4, a5*>
. 3) & (f
. 4)
= (
<*a1, a2, a3, a4, a5*>
. 4) & (f
. 5)
= (
<*a1, a2, a3, a4, a5*>
. 5) by
A2,
FINSEQ_1:def 7;
hence (f
. 1)
= a1 & (f
. 2)
= a2 & (f
. 3)
= a3 & (f
. 4)
= a4 & (f
. 5)
= a5 by
FINSEQ_4: 78;
A3: (
len
<*a1, a2, a3, a4, a5*>)
= 5 by
FINSEQ_4: 78;
A4: 1
in (
Seg 2) & 2
in (
Seg 2);
then 1
in (
dom
<*a6, a7*>) & (5
+ 1)
= 6 by
FINSEQ_1: 89;
hence (f
. 6)
= (
<*a6, a7*>
. 1) by
A2,
A3,
FINSEQ_1:def 7
.= a6 by
FINSEQ_1: 44;
2
in (
dom
<*a6, a7*>) & (5
+ 2)
= 7 by
A4,
FINSEQ_1: 89;
hence (f
. 7)
= (
<*a6, a7*>
. 2) by
A2,
A3,
FINSEQ_1:def 7
.= a7 by
FINSEQ_1: 44;
end;
hence f
=
<*a1, a2, a3, a4, a5, a6, a7*> implies (
len f)
= 7 & (f
. 1)
= a1 & (f
. 2)
= a2 & (f
. 3)
= a3 & (f
. 4)
= a4 & (f
. 5)
= a5 & (f
. 6)
= a6 & (f
. 7)
= a7;
assume
A5: (
len f)
= 7;
(
len
<*a1, a2, a3, a4, a5, a6, a7*>)
= 7 by
A1;
then
A6: (
dom f)
= (
Seg 7) & (
dom
<*a1, a2, a3, a4, a5, a6, a7*>)
= (
Seg 7) by
A5,
FINSEQ_1:def 3;
assume
A7: (f
. 1)
= a1;
assume
A8: (f
. 2)
= a2;
assume
A9: (f
. 3)
= a3;
assume
A10: (f
. 4)
= a4;
assume
A11: (f
. 5)
= a5;
assume
A12: (f
. 6)
= a6;
assume
A13: (f
. 7)
= a7;
now
let x be
object;
assume x
in (
Seg 7);
then x
= 1 or x
= 2 or x
= 3 or x
= 4 or x
= 5 or x
= 6 or x
= 7 by
FINSEQ_3: 5,
ENUMSET1:def 5;
hence (f
. x)
= (
<*a1, a2, a3, a4, a5, a6, a7*>
. x) by
A1,
A7,
A8,
A9,
A10,
A11,
A12,
A13;
end;
hence f
=
<*a1, a2, a3, a4, a5, a6, a7*> by
A6;
end;
theorem ::
AOFA_A00:23
for a1,a2,a3,a4,a5,a6,a7 be
object holds (
rng
<*a1, a2, a3, a4, a5, a6, a7*>)
=
{a1, a2, a3, a4, a5, a6, a7}
proof
let a1,a2,a3,a4,a5,a6,a7 be
object;
thus (
rng
<*a1, a2, a3, a4, a5, a6, a7*>)
= ((
rng
<*a1, a2, a3, a4, a5*>)
\/ (
rng
<*a6, a7*>)) by
FINSEQ_1: 31
.= (
{a1, a2, a3, a4, a5}
\/ (
rng
<*a6, a7*>)) by
CIRCCMB3: 14
.= (
{a1, a2, a3, a4, a5}
\/
{a6, a7}) by
FINSEQ_2: 127
.=
{a1, a2, a3, a4, a5, a6, a7} by
ENUMSET1: 20;
end;
definition
let a1,a2,a3,a4,a5,a6,a7,a8 be
object;
::
AOFA_A00:def5
func
<*a1,a2,a3,a4,a5,a6,a7,a8*> ->
FinSequence equals (
<*a1, a2, a3, a4, a5*>
^
<*a6, a7, a8*>);
coherence ;
end
definition
let X be non
empty
set;
let a1,a2,a3,a4,a5,a6,a7,a8 be
Element of X;
:: original:
<*
redefine
func
<*a1,a2,a3,a4,a5,a6,a7,a8*> ->
FinSequence of X ;
coherence
proof
(
<*a1, a2, a3, a4, a5*>
^
<*a6, a7, a8*>) is
FinSequence of X;
hence thesis;
end;
end
registration
let a1,a2,a3,a4,a5,a6,a7,a8 be
object;
cluster
<*a1, a2, a3, a4, a5, a6, a7, a8*> -> 8
-element;
coherence ;
end
theorem ::
AOFA_A00:24
Th19: for a1,a2,a3,a4,a5,a6,a7,a8 be
object holds for f be
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
proof
let a1,a2,a3,a4,a5,a6,a7,a8 be
object;
let f be
FinSequence;
A1:
now
let f be
FinSequence;
assume
A2: f
=
<*a1, a2, a3, a4, a5, a6, a7, a8*>;
hence (
len f)
= ((
len
<*a1, a2, a3, a4, a5*>)
+ (
len
<*a6, a7, a8*>)) by
FINSEQ_1: 22
.= (5
+ (
len
<*a6, a7, a8*>)) by
FINSEQ_4: 78
.= (5
+ 3) by
FINSEQ_1: 45
.= 8;
(
dom
<*a1, a2, a3, a4, a5*>)
= (
Seg 5) by
FINSEQ_1: 89;
then 1
in (
dom
<*a1, a2, a3, a4, a5*>) & 2
in (
dom
<*a1, a2, a3, a4, a5*>) & 3
in (
dom
<*a1, a2, a3, a4, a5*>) & 4
in (
dom
<*a1, a2, a3, a4, a5*>) & 5
in (
dom
<*a1, a2, a3, a4, a5*>);
then (f
. 1)
= (
<*a1, a2, a3, a4, a5*>
. 1) & (f
. 2)
= (
<*a1, a2, a3, a4, a5*>
. 2) & (f
. 3)
= (
<*a1, a2, a3, a4, a5*>
. 3) & (f
. 4)
= (
<*a1, a2, a3, a4, a5*>
. 4) & (f
. 5)
= (
<*a1, a2, a3, a4, a5*>
. 5) by
A2,
FINSEQ_1:def 7;
hence (f
. 1)
= a1 & (f
. 2)
= a2 & (f
. 3)
= a3 & (f
. 4)
= a4 & (f
. 5)
= a5 by
FINSEQ_4: 78;
A3: (
len
<*a1, a2, a3, a4, a5*>)
= 5 by
FINSEQ_4: 78;
A4: 1
in (
Seg 3) & 2
in (
Seg 3) & 3
in (
Seg 3);
then 1
in (
dom
<*a6, a7, a8*>) & (5
+ 1)
= 6 by
FINSEQ_1: 89;
hence (f
. 6)
= (
<*a6, a7, a8*>
. 1) by
A2,
A3,
FINSEQ_1:def 7
.= a6 by
FINSEQ_1: 45;
2
in (
dom
<*a6, a7, a8*>) & (5
+ 2)
= 7 by
A4,
FINSEQ_1: 89;
hence (f
. 7)
= (
<*a6, a7, a8*>
. 2) by
A2,
A3,
FINSEQ_1:def 7
.= a7 by
FINSEQ_1: 45;
3
in (
dom
<*a6, a7, a8*>) & (5
+ 3)
= 8 by
A4,
FINSEQ_1: 89;
hence (f
. 8)
= (
<*a6, a7, a8*>
. 3) by
A2,
A3,
FINSEQ_1:def 7
.= a8 by
FINSEQ_1: 45;
end;
hence f
=
<*a1, a2, a3, a4, a5, a6, a7, a8*> implies (
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;
assume
A5: (
len f)
= 8;
(
len
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
= 8 by
A1;
then
A6: (
dom f)
= (
Seg 8) & (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
= (
Seg 8) by
A5,
FINSEQ_1:def 3;
assume
A7: (f
. 1)
= a1;
assume
A8: (f
. 2)
= a2;
assume
A9: (f
. 3)
= a3;
assume
A10: (f
. 4)
= a4;
assume
A11: (f
. 5)
= a5;
assume
A12: (f
. 6)
= a6;
assume
A13: (f
. 7)
= a7;
assume
A14: (f
. 8)
= a8;
now
let x be
object;
assume x
in (
Seg 8);
then x
= 1 or x
= 2 or x
= 3 or x
= 4 or x
= 5 or x
= 6 or x
= 7 or x
= 8 by
FINSEQ_3: 6,
ENUMSET1:def 6;
hence (f
. x)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. x) by
A1,
A7,
A8,
A9,
A10,
A11,
A12,
A13,
A14;
end;
hence f
=
<*a1, a2, a3, a4, a5, a6, a7, a8*> by
A6;
end;
theorem ::
AOFA_A00:25
Th20: for a1,a2,a3,a4,a5,a6,a7,a8 be
object holds (
rng
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
=
{a1, a2, a3, a4, a5, a6, a7, a8}
proof
let a1,a2,a3,a4,a5,a6,a7,a8 be
object;
thus (
rng
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
= ((
rng
<*a1, a2, a3, a4, a5*>)
\/ (
rng
<*a6, a7, a8*>)) by
FINSEQ_1: 31
.= (
{a1, a2, a3, a4, a5}
\/ (
rng
<*a6, a7, a8*>)) by
CIRCCMB3: 14
.= (
{a1, a2, a3, a4, a5}
\/
{a6, a7, a8}) by
FINSEQ_2: 128
.=
{a1, a2, a3, a4, a5, a6, a7, a8} by
ENUMSET1: 26;
end;
theorem ::
AOFA_A00:26
Th21: for a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object holds (
rng (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>))
=
{a1, a2, a3, a4, a5, a6, a7, a8, a9}
proof
let a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object;
thus (
rng (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>))
= ((
rng
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
\/ (
rng
<*a9*>)) by
FINSEQ_1: 31
.= (
{a1, a2, a3, a4, a5, a6, a7, a8}
\/ (
rng
<*a9*>)) by
Th20
.= (
{a1, a2, a3, a4, a5, a6, a7, a8}
\/
{a9}) by
FINSEQ_1: 38
.=
{a1, a2, a3, a4, a5, a6, a7, a8, a9} by
ENUMSET1: 84;
end;
theorem ::
AOFA_A00:27
Th22: (
Seg 9)
=
{1, 2, 3, 4, 5, 6, 7, 8, 9}
proof
thus (
Seg 9)
= ((
Seg 8)
\/
{(8
+ 1)}) by
FINSEQ_1: 9
.=
{1, 2, 3, 4, 5, 6, 7, 8, 9} by
FINSEQ_3: 6,
ENUMSET1: 84;
end;
theorem ::
AOFA_A00:28
Th23: (
Seg 10)
=
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
proof
thus (
Seg 10)
= ((
Seg 9)
\/
{(9
+ 1)}) by
FINSEQ_1: 9
.=
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10} by
Th22,
ENUMSET1: 85;
end;
theorem ::
AOFA_A00:29
Th24: for a1,a2,a3,a4,a5,a6,a7,a8,a9 be
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
proof
let a1,a2,a3,a4,a5,a6,a7,a8,a9 be
object;
thus (
dom (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>))
= (
Seg ((
len
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
+ (
len
<*a9*>))) by
FINSEQ_1:def 7
.= (
Seg (8
+ (
len
<*a9*>))) by
Th19
.= (
Seg (8
+ 1)) by
FINSEQ_1: 40
.= (
Seg 9);
A1: (
len
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
= 8 by
Th19;
then 1
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 1)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 1) by
FINSEQ_1:def 7
.= a1 by
Th19;
2
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 2)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 2) by
FINSEQ_1:def 7
.= a2 by
Th19;
3
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 3)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 3) by
FINSEQ_1:def 7
.= a3 by
Th19;
4
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 4)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 4) by
FINSEQ_1:def 7
.= a4 by
Th19;
5
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 5)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 5) by
FINSEQ_1:def 7
.= a5 by
Th19;
6
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 6)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 6) by
FINSEQ_1:def 7
.= a6 by
Th19;
7
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 7)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 7) by
FINSEQ_1:def 7
.= a7 by
Th19;
8
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 8)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 8) by
FINSEQ_1:def 7
.= a8 by
Th19;
(
len
<*a9*>)
= 1 by
FINSEQ_1: 40;
then 1
in (
dom
<*a9*>) by
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9*>)
. 9)
= (
<*a9*>
. 1) by
A1,
FINSEQ_1:def 7
.= a9 by
FINSEQ_1: 40;
end;
theorem ::
AOFA_A00:30
Th25: for a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 be
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
proof
let a1,a2,a3,a4,a5,a6,a7,a8,a9,a10 be
object;
thus (
dom (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>))
= (
Seg ((
len
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
+ (
len
<*a9, a10*>))) by
FINSEQ_1:def 7
.= (
Seg (8
+ (
len
<*a9, a10*>))) by
Th19
.= (
Seg (8
+ 2)) by
FINSEQ_1: 44
.= (
Seg 10);
A1: (
len
<*a1, a2, a3, a4, a5, a6, a7, a8*>)
= 8 by
Th19;
then 1
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 1)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 1) by
FINSEQ_1:def 7
.= a1 by
Th19;
2
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 2)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 2) by
FINSEQ_1:def 7
.= a2 by
Th19;
3
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 3)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 3) by
FINSEQ_1:def 7
.= a3 by
Th19;
4
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 4)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 4) by
FINSEQ_1:def 7
.= a4 by
Th19;
5
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 5)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 5) by
FINSEQ_1:def 7
.= a5 by
Th19;
6
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 6)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 6) by
FINSEQ_1:def 7
.= a6 by
Th19;
7
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 7)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 7) by
FINSEQ_1:def 7
.= a7 by
Th19;
8
in (
dom
<*a1, a2, a3, a4, a5, a6, a7, a8*>) by
A1,
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 8)
= (
<*a1, a2, a3, a4, a5, a6, a7, a8*>
. 8) by
FINSEQ_1:def 7
.= a8 by
Th19;
(
len
<*a9, a10*>)
= 2 by
FINSEQ_1: 44;
then 1
in (
dom
<*a9, a10*>) & 9
= (8
+ 1) by
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 9)
= (
<*a9, a10*>
. 1) by
A1,
FINSEQ_1:def 7
.= a9 by
FINSEQ_1: 44;
(
len
<*a9, a10*>)
= 2 by
FINSEQ_1: 44;
then 2
in (
dom
<*a9, a10*>) by
FINSEQ_3: 25;
hence ((
<*a1, a2, a3, a4, a5, a6, a7, a8*>
^
<*a9, a10*>)
. 10)
= (
<*a9, a10*>
. 2) by
A1,
FINSEQ_1:def 7
.= a10 by
FINSEQ_1: 44;
end;
definition
let I,J be
set;
let S be
ManySortedSet of I;
::
AOFA_A00:def6
mode
ManySortedMSSet of S,J ->
ManySortedFunction of I means
:
Def6: for i,j be
set st i
in I holds (
dom (it
. i))
= (S
. i) & (j
in (S
. i) implies ((it
. i)
. j) is
ManySortedSet of J);
existence
proof
set f = the
ManySortedSet of J;
deffunc
F(
object) = ((S
. $1)
--> f);
consider X be
ManySortedSet of I such that
A1: for x be
object st x
in I holds (X
. x)
=
F(x) from
PBOOLE:sch 4;
X is
Function-yielding
proof
let x be
object;
assume x
in (
dom X);
then x
in I by
PARTFUN1:def 2;
then (X
. x)
=
F(x) by
A1;
hence thesis;
end;
then
reconsider X as
ManySortedFunction of I;
take X;
let i,j be
set;
assume
A2: i
in I;
then (X
. i)
=
F(i) by
A1;
hence (
dom (X
. i))
= (S
. i);
assume j
in (S
. i);
then (X
. i)
=
F(i) & (
F(i)
. j)
= f by
A1,
A2,
FUNCOP_1: 7;
hence thesis;
end;
end
definition
let I,J be
set;
let S1 be
ManySortedSet of I;
let S2 be
ManySortedSet of J;
::
AOFA_A00:def7
mode
ManySortedMSSet of S1,S2 ->
ManySortedMSSet of S1, J means
:
Def7: for i,a be
set st i
in I & a
in (S1
. i) holds ((it
. i)
. a) is
ManySortedSubset of S2;
existence
proof
set f = the
ManySortedSubset of S2;
deffunc
F(
object) = ((S1
. $1)
--> f);
consider X be
ManySortedSet of I such that
A1: for x be
object st x
in I holds (X
. x)
=
F(x) from
PBOOLE:sch 4;
X is
Function-yielding
proof
let x be
object;
assume x
in (
dom X);
then x
in I by
PARTFUN1:def 2;
then (X
. x)
=
F(x) by
A1;
hence thesis;
end;
then
reconsider X as
ManySortedFunction of I;
X is
ManySortedMSSet of S1, J
proof
let i,j be
set;
assume
A2: i
in I;
then (X
. i)
=
F(i) by
A1;
hence (
dom (X
. i))
= (S1
. i);
assume j
in (S1
. i);
then (X
. i)
=
F(i) & (
F(i)
. j)
= f by
A1,
A2,
FUNCOP_1: 7;
hence thesis;
end;
then
reconsider X as
ManySortedMSSet of S1, J;
take X;
let i,j be
set;
assume i
in I & j
in (S1
. i);
then (X
. i)
=
F(i) & (
F(i)
. j)
= f by
A1,
FUNCOP_1: 7;
hence thesis;
end;
end
registration
let I be
set;
let X,Y be
ManySortedSet of I;
let f be
ManySortedMSSet of X, Y;
let x, y;
cluster ((f
. x)
. y) ->
Function-like
Relation-like;
coherence
proof
(x
in (
dom f) or x
nin (
dom f)) & (
dom f)
= I by
PARTFUN1:def 2;
then x
in I & (
dom (f
. x))
= (X
. x) & (y
in (X
. x) or y
nin (X
. x)) or (f
. x)
=
{} & (
dom
{} )
=
{} by
Def6,
FUNCT_1:def 2;
hence thesis by
Def6,
FUNCT_1:def 2;
end;
end
definition
let S be
ManySortedSign;
let o,a be
set;
let r be
Element of S;
::
AOFA_A00:def8
pred o
is_of_type a,r means (the
Arity of S
. o)
= a & (the
ResultSort of S
. o)
= r;
end
theorem ::
AOFA_A00:31
Th26: for S be non
void non
empty
ManySortedSign holds for o be
OperSymbol of S holds for r be
SortSymbol of S st o
is_of_type (
{} ,r) holds for A be
MSAlgebra over S st (the
Sorts of A
. r)
<>
{} holds ((
Den ((
In (o,the
carrier' of S)),A))
.
{} ) is
Element of (the
Sorts of A
. r)
proof
let S be non
void non
empty
ManySortedSign;
let o be
OperSymbol of S;
let r be
SortSymbol of S;
assume
A1: (the
Arity of S
. o)
=
{} & (the
ResultSort of S
. o)
= r;
reconsider s = o as
OperSymbol of S;
let A be
MSAlgebra over S;
assume
A3: (the
Sorts of A
. r)
<>
{} ;
A4: (
<*> the
carrier of S)
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
(((the
Sorts of A
# )
* the
Arity of S)
. o)
= ((the
Sorts of A
# )
.
{} ) by
A1,
FUNCT_2: 15
.= (
product (the
Sorts of A
*
{} )) by
A4,
FINSEQ_2:def 5
.= (
product
{} );
then
A5:
{}
in (
Args (s,A)) by
CARD_3: 10,
TARSKI:def 1;
(
Result (s,A))
= (the
Sorts of A
. (
the_result_sort_of s)) by
FUNCT_2: 15;
hence ((
Den ((
In (o,the
carrier' of S)),A))
.
{} ) is
Element of (the
Sorts of A
. r) by
A1,
A3,
A5,
FUNCT_2: 5;
end;
theorem ::
AOFA_A00:32
Th27: for S be non
void non
empty
ManySortedSign holds for o,a be
set holds for r be
SortSymbol of S st o
is_of_type (
<*a*>,r) holds for A be
MSAlgebra over S st (the
Sorts of A
. a)
<>
{} & (the
Sorts of A
. r)
<>
{} holds for x be
Element of (the
Sorts of A
. a) holds ((
Den ((
In (o,the
carrier' of S)),A))
.
<*x*>) is
Element of (the
Sorts of A
. r)
proof
let S be non
void non
empty
ManySortedSign;
let o,a be
set;
let r be
SortSymbol of S;
assume
A1: (the
Arity of S
. o)
=
<*a*> & (the
ResultSort of S
. o)
= r;
then
A2: o
in (
dom the
Arity of S) & (
dom the
Arity of S)
c= the
carrier' of S by
FUNCT_1:def 2,
RELAT_1:def 18;
then
reconsider s = o as
OperSymbol of S;
let A be
MSAlgebra over S;
assume
A4: (the
Sorts of A
. a)
<>
{} ;
assume
A5: (the
Sorts of A
. r)
<>
{} ;
let x be
Element of (the
Sorts of A
. a);
A6:
<*a*>
= (
the_arity_of s) by
A1;
A7: (
dom the
Sorts of A)
= the
carrier of S by
PARTFUN1:def 2;
(((the
Sorts of A
# )
* the
Arity of S)
. o)
= ((the
Sorts of A
# )
.
<*a*>) by
A1,
A2,
FUNCT_2: 15
.= (
product (the
Sorts of A
*
<*a*>)) by
A6,
FINSEQ_2:def 5
.= (
product
<*(the
Sorts of A
. a)*>) by
A6,
FUNCT_7: 18,
A7,
FINSEQ_2: 34;
then
A8:
<*x*>
in (
Args (s,A)) by
A4,
FINSEQ_3: 123;
(
Result (s,A))
= (the
Sorts of A
. (
the_result_sort_of s)) by
FUNCT_2: 15;
hence ((
Den ((
In (o,the
carrier' of S)),A))
.
<*x*>) is
Element of (the
Sorts of A
. r) by
A1,
A5,
A8,
FUNCT_2: 5;
end;
theorem ::
AOFA_A00:33
Th28: for S be non
void non
empty
ManySortedSign holds for o,a,b be
set holds for r be
SortSymbol of S st o
is_of_type (
<*a, b*>,r) holds for A be
MSAlgebra over S st (the
Sorts of A
. a)
<>
{} & (the
Sorts of A
. b)
<>
{} & (the
Sorts of A
. r)
<>
{} holds for x be
Element of (the
Sorts of A
. a) holds for y be
Element of (the
Sorts of A
. b) holds ((
Den ((
In (o,the
carrier' of S)),A))
.
<*x, y*>) is
Element of (the
Sorts of A
. r)
proof
let S be non
void non
empty
ManySortedSign;
let o,a,b be
set;
let r be
SortSymbol of S;
assume
A1: (the
Arity of S
. o)
=
<*a, b*> & (the
ResultSort of S
. o)
= r;
then
A2: o
in (
dom the
Arity of S) & (
dom the
Arity of S)
c= the
carrier' of S by
FUNCT_1:def 2,
RELAT_1:def 18;
then
reconsider s = o as
OperSymbol of S;
let A be
MSAlgebra over S;
assume
A4: (the
Sorts of A
. a)
<>
{} ;
assume
A5: (the
Sorts of A
. b)
<>
{} ;
assume
A6: (the
Sorts of A
. r)
<>
{} ;
let x be
Element of (the
Sorts of A
. a);
let y be
Element of (the
Sorts of A
. b);
A7:
<*a, b*>
= (
the_arity_of s) by
A1;
(
dom the
Sorts of A)
= the
carrier of S by
PARTFUN1:def 2;
then
A8: the
Sorts of A is
Function of the
carrier of S, (
rng the
Sorts of A) & (
rng the
Sorts of A)
<>
{} by
FUNCT_2: 2;
(((the
Sorts of A
# )
* the
Arity of S)
. o)
= ((the
Sorts of A
# )
.
<*a, b*>) by
A1,
A2,
FUNCT_2: 15
.= (
product (the
Sorts of A
*
<*a, b*>)) by
A7,
FINSEQ_2:def 5
.= (
product
<*(the
Sorts of A
. a), (the
Sorts of A
. b)*>) by
A7,
A8,
FINSEQ_2: 36;
then
A9:
<*x, y*>
in (
Args (s,A)) by
A4,
A5,
FINSEQ_3: 124;
(
Result (s,A))
= (the
Sorts of A
. (
the_result_sort_of s)) by
FUNCT_2: 15;
hence ((
Den ((
In (o,the
carrier' of S)),A))
.
<*x, y*>) is
Element of (the
Sorts of A
. r) by
A1,
A6,
A9,
FUNCT_2: 5;
end;
theorem ::
AOFA_A00:34
Th29: for S be non
void non
empty
ManySortedSign holds for o,a,b,c be
set holds for r be
SortSymbol of S st o
is_of_type (
<*a, b, c*>,r) holds for A be
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 be
Element of (the
Sorts of A
. a) holds for y be
Element of (the
Sorts of A
. b) holds for z be
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)
proof
let S be non
void non
empty
ManySortedSign;
let o,a,b,c be
set;
let r be
SortSymbol of S;
assume
A1: (the
Arity of S
. o)
=
<*a, b, c*> & (the
ResultSort of S
. o)
= r;
then
A2: o
in (
dom the
Arity of S) & (
dom the
Arity of S)
c= the
carrier' of S by
FUNCT_1:def 2,
RELAT_1:def 18;
then
reconsider s = o as
OperSymbol of S;
let A be
MSAlgebra over S;
assume
A4: (the
Sorts of A
. a)
<>
{} ;
assume
A5: (the
Sorts of A
. b)
<>
{} ;
assume
A6: (the
Sorts of A
. c)
<>
{} ;
assume
A7: (the
Sorts of A
. r)
<>
{} ;
let x be
Element of (the
Sorts of A
. a);
let y be
Element of (the
Sorts of A
. b);
let z be
Element of (the
Sorts of A
. c);
A8:
<*a, b, c*>
= (
the_arity_of s) by
A1;
(
dom the
Sorts of A)
= the
carrier of S by
PARTFUN1:def 2;
then
A9: the
Sorts of A is
Function of the
carrier of S, (
rng the
Sorts of A) & (
rng the
Sorts of A)
<>
{} by
FUNCT_2: 2;
(((the
Sorts of A
# )
* the
Arity of S)
. o)
= ((the
Sorts of A
# )
.
<*a, b, c*>) by
A1,
A2,
FUNCT_2: 15
.= (
product (the
Sorts of A
*
<*a, b, c*>)) by
A8,
FINSEQ_2:def 5
.= (
product
<*(the
Sorts of A
. a), (the
Sorts of A
. b), (the
Sorts of A
. c)*>) by
A8,
A9,
FINSEQ_2: 37;
then
A10:
<*x, y, z*>
in (
Args (s,A)) by
A4,
A5,
A6,
FINSEQ_3: 125;
(
Result (s,A))
= (the
Sorts of A
. (
the_result_sort_of s)) by
FUNCT_2: 15;
hence ((
Den ((
In (o,the
carrier' of S)),A))
.
<*x, y, z*>) is
Element of (the
Sorts of A
. r) by
A1,
A7,
A10,
FUNCT_2: 5;
end;
theorem ::
AOFA_A00:35
for S1,S2 be
ManySortedSign st the ManySortedSign of S1
= the ManySortedSign of S2 holds for o,a be
set, r1 be
Element of S1 holds for r2 be
Element of S2 st r1
= r2 holds o
is_of_type (a,r1) implies o
is_of_type (a,r2);
begin
definition
let S be non
empty non
void
ManySortedSign;
struct (
MSAlgebra over S)
VarMSAlgebra over S
(# the
Sorts ->
ManySortedSet of the
carrier of S,
the
Charact ->
ManySortedFunction of (( the Sorts
# )
* the
Arity of S), ( the Sorts
* the
ResultSort of S),
the
free-vars ->
ManySortedMSSet of the Sorts, the Sorts #)
attr strict
strict;
end
registration
let S be non
empty non
void
ManySortedSign;
let U be
non-empty
ManySortedSet of the
carrier of S;
let C be
ManySortedFunction of ((U
# )
* the
Arity of S), (U
* the
ResultSort of S);
let v be
ManySortedMSSet of U, U;
cluster
VarMSAlgebra (# U, C, v #) ->
non-empty;
coherence ;
end
registration
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
cluster X, S
-terms for
strict
VarMSAlgebra over S;
existence
proof
set v = the
ManySortedMSSet of the
Sorts of (
Free (S,X)), the
Sorts of (
Free (S,X));
take A =
VarMSAlgebra (# the
Sorts of (
Free (S,X)), the
Charact of (
Free (S,X)), v #);
thus the
Sorts of A is
ManySortedSubset of the
Sorts of (
Free (S,X))
proof
thus the
Sorts of A
c= the
Sorts of (
Free (S,X));
end;
end;
end
registration
let S be non
empty non
void
ManySortedSign;
cluster
non-empty
disjoint_valued for
VarMSAlgebra over S;
existence
proof
set A = the
non-empty
disjoint_valued
MSAlgebra over S;
set v = the
ManySortedMSSet of the
Sorts of A, the
Sorts of A;
take V =
VarMSAlgebra (# the
Sorts of A, the
Charact of A, v #);
thus the
Sorts of V is
non-empty;
thus the
Sorts of V is
disjoint_valued;
end;
let X be
non-empty
ManySortedSet of the
carrier of S;
cluster
all_vars_including ->
non-empty for X, S
-terms
VarMSAlgebra over S;
coherence ;
end
definition
let S be non
empty non
void
ManySortedSign;
let A be
non-empty
VarMSAlgebra over S;
let a be
SortSymbol of S;
let t be
Element of A, a;
::
AOFA_A00:def9
func
vf t ->
ManySortedSubset of the
Sorts of A equals ((the
free-vars of A
. a)
. t);
coherence by
Def7;
end
definition
let S be non
empty non
void
ManySortedSign;
let A be
non-empty
VarMSAlgebra over S;
::
AOFA_A00:def10
attr A is
vf-correct means for o be
OperSymbol of S holds for p be
FinSequence st p
in (
Args (o,A)) holds for b be
Element of A, (
the_result_sort_of o) st b
= ((
Den (o,A))
. p) holds for s be
SortSymbol of S holds ((
vf b)
. s)
c= (
union { ((
vf a)
. s) where s0 be
SortSymbol of S, a be
Element of A, s0 : ex i be
Nat st i
in (
dom (
the_arity_of o)) & s0
= ((
the_arity_of o)
. i) & a
= (p
. i) });
end
theorem ::
AOFA_A00:36
Th31: for S be non
empty non
void
ManySortedSign holds for A,B be
MSAlgebra over S st the MSAlgebra of A
= the MSAlgebra of B holds for G be
MSSubset of A holds for H be
MSSubset of B st G
= H holds (
GenMSAlg G)
= (
GenMSAlg H)
proof
let S be non
empty non
void
ManySortedSign;
let A,B be
MSAlgebra over S such that
A1: the MSAlgebra of A
= the MSAlgebra of B;
let G be
MSSubset of A;
let H be
MSSubset of B such that
A2: G
= H;
A3: G is
MSSubset of (
GenMSAlg G) & H is
MSSubset of (
GenMSAlg H) by
MSUALG_2:def 17;
(
GenMSAlg G) is
MSSubAlgebra of B & (
GenMSAlg H) is
MSSubAlgebra of A by
A1,
MSAFREE4: 28;
then (
GenMSAlg G) is
MSSubAlgebra of (
GenMSAlg H) & (
GenMSAlg H) is
MSSubAlgebra of (
GenMSAlg G) by
A2,
A3,
MSUALG_2:def 17;
hence (
GenMSAlg G)
= (
GenMSAlg H) by
MSUALG_2: 7;
end;
theorem ::
AOFA_A00:37
Th32: for S be non
empty non
void
ManySortedSign holds for A,B be
MSAlgebra over S st the MSAlgebra of A
= the MSAlgebra of B holds for G be
GeneratorSet of A holds G is
GeneratorSet of B
proof
let S be non
empty non
void
ManySortedSign;
let A,B be
MSAlgebra over S such that
A1: the MSAlgebra of A
= the MSAlgebra of B;
let G be
GeneratorSet of A;
reconsider H = G as
MSSubset of B by
A1;
(
GenMSAlg H)
= (
GenMSAlg G) by
A1,
Th31;
hence G is
GeneratorSet of B by
A1,
MSAFREE:def 4;
end;
theorem ::
AOFA_A00:38
Th33: for S be non
empty non
void
ManySortedSign holds for A,B be
non-empty
MSAlgebra over S st the MSAlgebra of A
= the MSAlgebra of B holds for G be
GeneratorSet of A holds for H be
GeneratorSet of B st G
= H holds G is
free implies H is
free
proof
let S be non
empty non
void
ManySortedSign;
let A,B be
non-empty
MSAlgebra over S such that
A1: the MSAlgebra of A
= the MSAlgebra of B;
let G be
GeneratorSet of A;
let H be
GeneratorSet of B;
assume
A2: G
= H;
assume
A3: for U1 be
non-empty
MSAlgebra over S holds for f be
ManySortedFunction of G, the
Sorts of U1 holds ex h be
ManySortedFunction of A, U1 st h
is_homomorphism (A,U1) & (h
|| G)
= f;
let U1 be
non-empty
MSAlgebra over S;
let f be
ManySortedFunction of H, the
Sorts of U1;
consider h be
ManySortedFunction of A, U1 such that
A4: h
is_homomorphism (A,U1) & (h
|| G)
= f by
A2,
A3;
reconsider g = h as
ManySortedFunction of B, U1 by
A1;
take g;
the MSAlgebra of U1
= the MSAlgebra of U1;
hence g
is_homomorphism (B,U1) by
A1,
A4,
MSAFREE4: 30;
thus (g
|| H)
= f by
A1,
A2,
A4;
end;
registration
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
cluster
all_vars_including
inheriting_operations
free_in_itself for X, S
-terms
strict
VarMSAlgebra over S;
existence
proof
set v = the
ManySortedMSSet of the
Sorts of (
Free (S,X)), the
Sorts of (
Free (S,X));
set A =
VarMSAlgebra (# the
Sorts of (
Free (S,X)), the
Charact of (
Free (S,X)), v #);
A is X, S
-terms
proof
thus the
Sorts of A
c= the
Sorts of (
Free (S,X));
end;
then
reconsider A as X, S
-terms
strict
VarMSAlgebra over S;
take A;
A1: the MSAlgebra of A
= (
FreeMSA X) by
MSAFREE3: 31;
thus (
FreeGen X) is
ManySortedSubset of the
Sorts of A & for o be
OperSymbol of S, p be
FinSequence holds (p
in (
Args (o,(
Free (S,X)))) & ((
Den (o,(
Free (S,X))))
. p)
in (the
Sorts of A
. (
the_result_sort_of o)) implies p
in (
Args (o,A)) & ((
Den (o,A))
. p)
= ((
Den (o,(
Free (S,X))))
. p)) by
MSAFREE3: 31;
reconsider B = A as
non-empty
VarMSAlgebra over S;
let f be
ManySortedFunction of (
FreeGen X), the
Sorts of A;
let G be
MSSubset of A;
assume
A2: G
= (
FreeGen X);
then
reconsider F = G as
non-empty
GeneratorSet of the MSAlgebra of B by
MSAFREE3: 31;
reconsider H = F as
non-empty
GeneratorSet of B by
Th32;
H is
free by
Th33,
A1,
A2,
MSAFREE: 16;
hence thesis by
A2;
end;
end
definition
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
let A be
non-emptyX, S
-terms
VarMSAlgebra over S;
::
AOFA_A00:def11
attr A is
vf-free means
:
Def11: for s,r be
SortSymbol of S holds for t be
Element of A, s holds ((
vf t)
. r)
= { (t
| p) where p be
Element of (
dom t) : (((t
| p)
.
{} )
`2 )
= r };
end
scheme ::
AOFA_A00:sch1
Scheme { I() -> non
empty
set , X,Y() ->
non-empty
ManySortedSet of I() , F(
object,
object,
object) ->
set } :
ex f be
ManySortedMSSet of X(), Y() st for s,r be
Element of I() holds for t be
Element of (X()
. s) holds (((f
. s)
. t)
. r)
= F(s,r,t)
provided
A1: for s,r be
Element of I() holds for t be
Element of (X()
. s) holds F(s,r,t) is
Subset of (Y()
. r);
defpred
P[
object,
object] means ex f be
ManySortedFunction of (X()
. $1) st $2
= f & for r be
Element of I() holds for t be
Element of (X()
. $1) holds (
dom (f
. t))
= I() & ((f
. t)
. r)
= F($1,r,t);
A2: for s be
object st s
in I() holds ex y be
object st
P[s, y]
proof
let s be
object;
assume s
in I();
then
reconsider s0 = s as
Element of I();
defpred
Q[
object,
object] means ex g be
Function st $2
= g & (
dom g)
= I() & for r be
Element of I() holds (g
. r)
= F(s,r,$1);
A3: for t be
object st t
in (X()
. s) holds ex y be
object st
Q[t, y]
proof
let t be
object;
assume t
in (X()
. s);
deffunc
G(
set) = F(s,$1,t);
consider g be
Function such that
A4: (
dom g)
= I() & for r be
Element of I() holds (g
. r)
=
G(r) from
FUNCT_1:sch 4;
take g, g;
thus thesis by
A4;
end;
consider f be
Function such that
A5: (
dom f)
= (X()
. s) & for t be
object st t
in (X()
. s) holds
Q[t, (f
. t)] from
CLASSES1:sch 1(
A3);
reconsider f as
ManySortedSet of (X()
. s) by
A5,
RELAT_1:def 18,
PARTFUN1:def 2;
f is
Function-yielding
proof
let x be
object;
assume x
in (
dom f);
then
Q[x, (f
. x)] by
A5;
hence thesis;
end;
then
reconsider f as
ManySortedFunction of (X()
. s);
take f, f;
thus f
= f;
let r be
Element of I();
let t be
Element of (X()
. s);
t
in (X()
. s0);
then
Q[t, (f
. t)] by
A5;
hence (
dom (f
. t))
= I() & ((f
. t)
. r)
= F(s,r,t);
end;
consider F be
Function such that
A6: (
dom F)
= I() & for x be
object st x
in I() holds
P[x, (F
. x)] from
CLASSES1:sch 1(
A2);
reconsider F as
ManySortedSet of I() by
A6,
RELAT_1:def 18,
PARTFUN1:def 2;
F is
Function-yielding
proof
let x be
object;
assume x
in (
dom F);
then
P[x, (F
. x)] by
A6;
hence thesis;
end;
then
reconsider F as
ManySortedFunction of I();
F is
ManySortedMSSet of X(), I()
proof
let i,j be
set;
assume i
in I();
then
consider f be
ManySortedFunction of (X()
. i) such that
A7: (F
. i)
= f & for r be
Element of I() holds for t be
Element of (X()
. i) holds (
dom (f
. t))
= I() & ((f
. t)
. r)
= F(i,r,t) by
A6;
thus (
dom (F
. i))
= (X()
. i) by
A7,
PARTFUN1:def 2;
assume j
in (X()
. i);
then (
dom (f
. j))
= I() by
A7;
hence ((F
. i)
. j) is
ManySortedSet of I() by
A7,
RELAT_1:def 18,
PARTFUN1:def 2;
end;
then
reconsider F as
ManySortedMSSet of X(), I();
F is
ManySortedMSSet of X(), Y()
proof
let i,a be
set;
assume
A8: i
in I() & a
in (X()
. i);
then
reconsider g = ((F
. i)
. a) as
ManySortedSet of I() by
Def6;
consider f be
ManySortedFunction of (X()
. i) such that
A9: (F
. i)
= f & for r be
Element of I() holds for t be
Element of (X()
. i) holds (
dom (f
. t))
= I() & ((f
. t)
. r)
= F(i,r,t) by
A6,
A8;
g is
ManySortedSubset of Y()
proof
let x be
object;
assume x
in I();
then (g
. x)
= F(i,x,a) & F(i,x,a) is
Subset of (Y()
. x) by
A1,
A8,
A9;
hence thesis;
end;
hence thesis;
end;
then
reconsider F as
ManySortedMSSet of X(), Y();
take F;
let s,r be
Element of I();
let t be
Element of (X()
. s);
P[s, (F
. s)] by
A6;
hence (((F
. s)
. t)
. r)
= F(s,r,t);
end;
theorem ::
AOFA_A00:39
Th34: for S be non
empty non
void
ManySortedSign holds for X be
non-empty
ManySortedSet of the
carrier of S holds for A be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
MSAlgebra over S holds ex VF be
ManySortedMSSet of the
Sorts of A, the
Sorts of A, B be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S st B
=
VarMSAlgebra (# the
Sorts of A, the
Charact of A, VF #) & B is
vf-free
proof
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
let A be
all_vars_including
inheriting_operations
free_in_itselfX, S
-termsX, S
-terms
MSAlgebra over S;
deffunc
F(
Element of S,
Element of S,
Element of A, $1) = { ($3
| p) where p be
Element of (
dom $3) : ((($3
| p)
.
{} )
`2 )
= $2 };
A1: for s,r be
SortSymbol of S holds for t be
Element of A, s holds
F(s,r,t) is
Subset of (the
Sorts of A
. r)
proof
let s,r be
SortSymbol of S;
let t be
Element of (the
Sorts of A
. s);
F(s,r,t)
c= (the
Sorts of A
. r)
proof
let x be
object;
assume x
in
F(s,r,t);
then
consider p be
Element of (
dom t) such that
A2: x
= (t
| p) & (((t
| p)
.
{} )
`2 )
= r;
reconsider tp = (t
| p) as
Element of A by
MSAFREE4: 44;
reconsider t1 = tp as
Term of S, X by
MSAFREE4: 42;
per cases by
MSATERM: 2;
suppose ex s be
SortSymbol of S, v be
Element of (X
. s) st (t1
.
{} )
=
[v, s];
then
consider s1 be
SortSymbol of S, v be
Element of (X
. s1) such that
A3: (tp
.
{} )
=
[v, s1];
A4: s1
= r by
A2,
A3;
then t1
= (
root-tree
[v, r]) by
A3,
MSATERM: 5;
then (
the_sort_of t1)
= r by
A4,
MSATERM: 14;
then t1
in (
FreeSort (X,r)) by
MSATERM:def 5;
then tp
in (the
Sorts of (
FreeMSA X)
. r) by
MSAFREE:def 11;
then tp
in (the
Sorts of (
Free (S,X))
. r) by
MSAFREE3: 31;
hence thesis by
A2,
MSAFREE4: 43;
end;
suppose (tp
.
{} )
in
[:the
carrier' of S,
{the
carrier of S}:];
then ((tp
.
{} )
`2 )
in
{the
carrier of S} by
MCART_1: 10;
then r
= the
carrier of S & r
in the
carrier of S by
A2,
TARSKI:def 1;
hence thesis;
end;
end;
hence
F(s,r,t) is
Subset of (the
Sorts of A
. r);
end;
consider v be
ManySortedMSSet of the
Sorts of A, the
Sorts of A such that
A5: for x,z be
Element of the
carrier of S holds for y be
Element of (the
Sorts of A
. x) holds (((v
. x)
. y)
. z)
=
F(x,z,y) from
Scheme(
A1);
set B =
VarMSAlgebra (# the
Sorts of A, the
Charact of A, v #);
take v;
B is X, S
-terms
proof
thus the
Sorts of B is
ManySortedSubset of the
Sorts of (
Free (S,X)) by
MSAFREE4:def 6;
end;
then
reconsider B as X, S
-terms
strict
VarMSAlgebra over S;
B is
all_vars_including
inheriting_operations
free_in_itself
proof
thus (
FreeGen X) is
ManySortedSubset of the
Sorts of B by
MSAFREE4:def 7;
hereby
let o be
OperSymbol of S, p be
FinSequence;
assume p
in (
Args (o,(
Free (S,X)))) & ((
Den (o,(
Free (S,X))))
. p)
in (the
Sorts of B
. (
the_result_sort_of o));
then p
in (
Args (o,A)) & ((
Den (o,A))
. p)
= ((
Den (o,(
Free (S,X))))
. p) by
MSAFREE4:def 8;
hence p
in (
Args (o,B)) & ((
Den (o,B))
. p)
= ((
Den (o,(
Free (S,X))))
. p);
end;
let f be
ManySortedFunction of (
FreeGen X), the
Sorts of B;
let G be
ManySortedSubset of the
Sorts of B such that
A7: G
= (
FreeGen X);
reconsider H = G as
MSSubset of A;
consider h be
ManySortedFunction of A, A such that
A8: h
is_homomorphism (A,A) & f
= (h
|| H) by
A7,
MSAFREE4:def 9;
reconsider g = h as
ManySortedFunction of B, B;
take g;
the MSAlgebra of B
= the MSAlgebra of A;
hence g
is_homomorphism (B,B) by
A8,
MSAFREE4: 30;
thus thesis by
A8;
end;
then
reconsider B as
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
strict
VarMSAlgebra over S;
B is
vf-free by
A5;
hence thesis;
end;
registration
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
cluster
strict
vf-free for
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S;
existence
proof
set A = the
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
MSAlgebra over S;
consider VF be
ManySortedMSSet of the
Sorts of A, the
Sorts of A, B be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S such that
A1: B
=
VarMSAlgebra (# the
Sorts of A, the
Charact of A, VF #) & B is
vf-free by
Th34;
take B;
thus thesis by
A1;
end;
end
theorem ::
AOFA_A00:40
Th35: for S be non
empty non
void
ManySortedSign holds for X be
non-empty
ManySortedSet of the
carrier of S holds for A be
vf-free
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S holds for s be
SortSymbol of S holds for t be
Element of A, s holds (
vf t) is
ManySortedSubset of (
FreeGen X)
proof
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
let A be
vf-free
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S;
let s be
SortSymbol of S;
let t be
Element of A, s;
let x be
object;
assume x
in the
carrier of S;
then
reconsider r = x as
SortSymbol of S;
let y be
object;
assume y
in ((
vf t)
. x);
then y
in { (t
| p) where p be
Element of (
dom t) : (((t
| p)
.
{} )
`2 )
= r } by
Def11;
then
consider p be
Element of (
dom t) such that
A1: y
= (t
| p) & (((t
| p)
.
{} )
`2 )
= r;
t is
Element of (the
Sorts of A
. s);
then
reconsider tp = (t
| p) as
Element of A by
MSAFREE4: 44;
A2: tp is
Term of S, X by
MSAFREE4: 42;
per cases by
A2,
MSATERM: 2;
suppose (tp
.
{} )
in
[:the
carrier' of S,
{the
carrier of S}:];
then r
in
{the
carrier of S} by
A1,
MCART_1: 10;
then r
= the
carrier of S by
TARSKI:def 1;
then r
in r;
hence thesis;
end;
suppose ex s be
SortSymbol of S, v be
Element of (X
. s) st (tp
.
{} )
=
[v, s];
then
consider s1 be
SortSymbol of S, v be
Element of (X
. s1) such that
A3: (tp
.
{} )
=
[v, s1];
tp
= (
root-tree
[v, s1]) by
A2,
A3,
MSATERM: 5;
then tp
in (
FreeGen (s1,X)) by
MSAFREE:def 15;
then tp
in ((
FreeGen X)
. s1) by
MSAFREE:def 16;
hence y
in ((
FreeGen X)
. x) by
A1,
A3;
end;
end;
theorem ::
AOFA_A00:41
for S be non
empty non
void
ManySortedSign holds for X be
non-empty
ManySortedSet of the
carrier of S holds for A be
vf-free
all_vars_includingX, S
-terms
VarMSAlgebra over S holds for s be
SortSymbol of S holds for x be
Element of A, s st x
in ((
FreeGen X)
. s) holds (
vf x)
= (s
-singleton x)
proof
let S be non
empty non
void
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
let A be
vf-free
all_vars_includingX, S
-terms
VarMSAlgebra over S;
let s be
SortSymbol of S;
let x be
Element of A, s;
assume x
in ((
FreeGen X)
. s);
then x
in (
FreeGen (s,X)) by
MSAFREE:def 16;
then
consider a be
set such that
A1: a
in (X
. s) & x
= (
root-tree
[a, s]) by
MSAFREE:def 15;
A2: (
dom (
root-tree
[a, s]))
=
{
{} } & ((
root-tree
[a, s])
.
{} )
=
[a, s] by
TREES_4: 3,
TREES_1: 29;
A3: (
[a, s]
`2 )
= s;
now
let y be
object;
assume y
in the
carrier of S;
then
reconsider r = y as
SortSymbol of S;
A4: { (x
| p) where p be
Element of (
dom x) : (((x
| p)
.
{} )
`2 )
= r }
= ((s
-singleton x)
. y)
proof
thus { (x
| p) where p be
Element of (
dom x) : (((x
| p)
.
{} )
`2 )
= r }
c= ((s
-singleton x)
. y)
proof
let z be
object;
assume z
in { (x
| p) where p be
Element of (
dom x) : (((x
| p)
.
{} )
`2 )
= r };
then
consider p be
Element of (
dom x) such that
A5: z
= (x
| p) & (((x
| p)
.
{} )
`2 )
= r;
p
=
{} by
A1,
A2;
then
A6: z
= x by
A5,
TREES_9: 1;
then ((s
-singleton x)
. r)
=
{x} by
A1,
A2,
A5,
Th6;
hence z
in ((s
-singleton x)
. y) by
A6,
TARSKI:def 1;
end;
let z be
object;
reconsider p =
{} as
Element of (
dom x) by
A1,
A2,
TARSKI:def 1;
assume
A7: z
in ((s
-singleton x)
. y);
then
A8: r
= s by
Th6;
then z
in
{x} by
A7,
Th6;
then
A9: z
= x by
TARSKI:def 1;
then z
= (x
| p) by
TREES_9: 1;
hence thesis by
A1,
A2,
A3,
A9,
A8;
end;
thus ((
vf x)
. y)
= ((s
-singleton x)
. y) by
A4,
Def11;
end;
hence (
vf x)
= (s
-singleton x);
end;
begin
definition
let I be
set;
let S be
ManySortedSet of I;
::
AOFA_A00:def12
mode
ManySortedElement of S ->
ManySortedSet of I means for i be
set st i
in I holds (it
. i) is
Element of (S
. i);
existence
proof
deffunc
F(
object) = the
Element of (S
. $1);
consider f be
ManySortedSet of I such that
A1: for x be
object st x
in I holds (f
. x)
=
F(x) from
PBOOLE:sch 4;
take f;
let x;
assume x
in I;
then (f
. x)
=
F(x) by
A1;
hence thesis;
end;
end
definition
let S be non
empty non
void
ManySortedSign;
struct (
MSAlgebra over S)
UndefMSAlgebra over S
(# the
Sorts ->
ManySortedSet of the
carrier of S,
the
Charact ->
ManySortedFunction of (( the Sorts
# )
* the
Arity of S), ( the Sorts
* the
ResultSort of S),
the
undefined-map ->
ManySortedElement of the Sorts #)
attr strict
strict;
end
definition
let S be non
empty non
void
ManySortedSign;
let A be
UndefMSAlgebra over S;
let s be
SortSymbol of S;
let a be
Element of A, s;
::
AOFA_A00:def13
attr a is
undefined means a
= (the
undefined-map of A
. s);
end
definition
let S be non
empty non
void
ManySortedSign;
let A be
UndefMSAlgebra over S;
::
AOFA_A00:def14
attr A is
undef-consequent means for o be
OperSymbol of S holds for p be
FinSequence st p
in (
Args (o,A)) & ex i be
Nat, s be
SortSymbol of S, a be
Element of A, s st i
in (
dom (
the_arity_of o)) & s
= ((
the_arity_of o)
. i) & a
= (p
. i) & a is
undefined holds for b be
Element of A, (
the_result_sort_of o) st b
= ((
Den (o,A))
. p) holds b is
undefined;
end
definition
let S be non
empty non
void
ManySortedSign;
let A be
MSAlgebra over S;
let B be
UndefMSAlgebra over S;
::
AOFA_A00:def15
attr B is A
-undef means B is
undef-consequent & the
undefined-map of B
= the
Sorts of A & (for s be
SortSymbol of S holds (the
Sorts of B
. s)
= (
succ (the
Sorts of A
. s))) & for o be
OperSymbol of S, a be
Element of (
Args (o,A)) st (
Args (o,A))
<>
{} holds ((
Den (o,B))
. a)
<> ((
Den (o,A))
. a) implies ((
Den (o,B))
. a)
= (the
undefined-map of B
. (
the_result_sort_of o));
end
registration
let S be non
empty
ManySortedSign;
let A be
MSAlgebra over S;
cluster the
Charact of A ->
Function-yielding;
coherence ;
end
registration
let S be non
empty non
void
ManySortedSign;
let A be
non-empty
MSAlgebra over S;
cluster A
-undef ->
undef-consequent for
UndefMSAlgebra over S;
coherence ;
cluster A
-undef
non-empty for
strict
UndefMSAlgebra over S;
existence
proof
deffunc
F(
object) = (
succ (the
Sorts of A
. $1));
consider X be
ManySortedSet of the
carrier of S such that
A1: for x be
object st x
in the
carrier of S holds (X
. x)
=
F(x) from
PBOOLE:sch 4;
X is
non-empty
proof
let x be
object;
assume x
in the
carrier of S;
then (X
. x)
=
F(x) by
A1;
hence thesis;
end;
then
reconsider X as
non-empty
ManySortedSet of the
carrier of S;
deffunc
G(
object) = (((((X
# )
* the
Arity of S)
. $1)
--> ((the
Sorts of A
* the
ResultSort of S)
. $1))
+* (the
Charact of A
. $1));
consider ch be
ManySortedSet of the
carrier' of S such that
A2: for x be
object st x
in the
carrier' of S holds (ch
. x)
=
G(x) from
PBOOLE:sch 4;
ch is
Function-yielding
proof
let x be
object;
assume x
in (
dom ch);
then x
in the
carrier' of S by
PARTFUN1:def 2;
then (ch
. x)
=
G(x) by
A2;
hence thesis;
end;
then
reconsider ch as
ManySortedFunction of the
carrier' of S;
the
Sorts of A is
ManySortedSubset of X
proof
let x be
object;
assume x
in the
carrier of S;
then (X
. x)
=
F(x) by
A1
.= ((the
Sorts of A
. x)
\/
{(the
Sorts of A
. x)});
hence thesis by
XBOOLE_1: 7;
end;
then
reconsider Y = the
Sorts of A as
ManySortedSubset of X;
X is
ManySortedSubset of X
proof
let x be
object;
thus thesis;
end;
then
reconsider X1 = X as
ManySortedSubset of X;
ch is
ManySortedFunction of ((X
# )
* the
Arity of S), (X
* the
ResultSort of S)
proof
let x be
object;
assume x
in the
carrier' of S;
then
reconsider x as
OperSymbol of S;
(Y
# )
c= (X
# ) & (
the_arity_of x)
in (the
carrier of S
* ) & (
dom the
Arity of S)
= the
carrier' of S & the
Charact of A is
ManySortedFunction of ((Y
# )
* the
Arity of S), (Y
* the
ResultSort of S) by
Th2,
FUNCT_2:def 1,
PBOOLE:def 18;
then ((Y
# )
. (
the_arity_of x))
c= ((X
# )
. (
the_arity_of x)) & (((Y
# )
* the
Arity of S)
. x)
= ((Y
# )
. (
the_arity_of x)) & (((X1
# )
* the
Arity of S)
. x)
= ((X
# )
. (
the_arity_of x)) & (the
Charact of A
. x) is
Function of (((Y
# )
* the
Arity of S)
. x), ((Y
* the
ResultSort of S)
. x) by
FUNCT_1: 13;
then ((((X
# )
* the
Arity of S)
. x)
\/ (((Y
# )
* the
Arity of S)
. x))
= (((X
# )
* the
Arity of S)
. x) & (
dom ((((X
# )
* the
Arity of S)
. x)
--> ((the
Sorts of A
* the
ResultSort of S)
. x)))
= (((X
# )
* the
Arity of S)
. x) & (
dom (the
Charact of A
. x))
= (((Y
# )
* the
Arity of S)
. x) & (ch
. x)
=
G(x) by
A2,
XBOOLE_1: 12,
FUNCT_2:def 1;
then
A3: (
dom (ch
. x))
= (((X
# )
* the
Arity of S)
. x) by
FUNCT_4:def 1;
(
dom the
ResultSort of S)
= the
carrier' of S by
FUNCT_2:def 1;
then
A4: ((Y
* the
ResultSort of S)
. x)
= (Y
. (
the_result_sort_of x)) & ((X
* the
ResultSort of S)
. x)
= (X
. (
the_result_sort_of x)) by
FUNCT_1: 13;
then
A5: ((Y
* the
ResultSort of S)
. x)
c= ((X
* the
ResultSort of S)
. x) by
PBOOLE:def 18,
PBOOLE:def 2;
(X
. (
the_result_sort_of x))
= (
succ (Y
. (
the_result_sort_of x))) by
A1;
then (Y
. (
the_result_sort_of x))
in (X
. (
the_result_sort_of x)) by
ORDINAL1: 8;
then
{(Y
. (
the_result_sort_of x))}
c= (X
. (
the_result_sort_of x)) by
ZFMISC_1: 31;
then
A6: (
rng ((((X
# )
* the
Arity of S)
. x)
--> ((the
Sorts of A
* the
ResultSort of S)
. x)))
c= (X
. (
the_result_sort_of x)) by
A4;
(
rng (the
Charact of A
. x))
c= (X
. (
the_result_sort_of x)) by
A5,
A4,
RELAT_1:def 19;
then
A7: ((
rng ((((X
# )
* the
Arity of S)
. x)
--> ((the
Sorts of A
* the
ResultSort of S)
. x)))
\/ (
rng (the
Charact of A
. x)))
c= (X
. (
the_result_sort_of x)) by
A6,
XBOOLE_1: 8;
(
rng
G(x))
c= ((
rng ((((X
# )
* the
Arity of S)
. x)
--> ((Y
* the
ResultSort of S)
. x)))
\/ (
rng (the
Charact of A
. x))) by
FUNCT_4: 17;
then (
rng
G(x))
c= ((X
* the
ResultSort of S)
. x) & (ch
. x)
=
G(x) by
A2,
A4,
A7;
hence thesis by
A3,
FUNCT_2: 2;
end;
then
reconsider ch as
ManySortedFunction of ((X
# )
* the
Arity of S), (X
* the
ResultSort of S);
the
Sorts of A is
ManySortedElement of X
proof
let x;
assume x
in the
carrier of S;
then (X
. x)
=
F(x) by
A1;
hence thesis by
ORDINAL1: 8;
end;
then
reconsider u = the
Sorts of A as
ManySortedElement of X;
take B =
UndefMSAlgebra (# X, ch, u #);
hereby
let o be
OperSymbol of S;
let p be
FinSequence such that
A8: p
in (
Args (o,B));
given i be
Nat, s be
SortSymbol of S, a be
Element of B, s such that
A9: i
in (
dom (
the_arity_of o)) & s
= ((
the_arity_of o)
. i) & a
= (p
. i) & a is
undefined;
A10:
now
assume
A11: p
in (
Args (o,A));
A12: (
dom (Y
* (
the_arity_of o)))
= (
dom (
the_arity_of o)) by
PARTFUN1:def 2;
(
dom the
Arity of S)
= the
carrier' of S by
FUNCT_2:def 1;
then (
Args (o,A))
= ((Y
# )
. (
the_arity_of o)) by
FUNCT_1: 13
.= (
product (Y
* (
the_arity_of o))) by
FINSEQ_2:def 5;
then (p
. i)
in ((Y
* (
the_arity_of o))
. i) by
A9,
A11,
A12,
CARD_3: 9;
then a
in (Y
. s) & (u
. s)
= a by
A9,
FUNCT_1: 13;
hence contradiction;
end;
let b be
Element of B, (
the_result_sort_of o);
assume
A13: b
= ((
Den (o,B))
. p);
A14: (
dom (
Den (o,A)))
= (
Args (o,A)) by
FUNCT_2:def 1;
A15: (
dom the
ResultSort of S)
= the
carrier' of S by
FUNCT_2:def 1;
b
= (
G(o)
. p) by
A2,
A13
.= (((
Args (o,B))
--> ((Y
* the
ResultSort of S)
. o))
. p) by
A14,
A10,
FUNCT_4: 11
.= ((Y
* the
ResultSort of S)
. o) by
A8,
FUNCOP_1: 7
.= (u
. (
the_result_sort_of o)) by
A15,
FUNCT_1: 13;
hence b is
undefined;
end;
thus the
undefined-map of B
= the
Sorts of A;
thus for s be
SortSymbol of S holds (the
Sorts of B
. s)
= (
succ (the
Sorts of A
. s)) by
A1;
hereby
let o be
OperSymbol of S;
let a be
Element of (
Args (o,A));
assume (
Args (o,A))
<>
{} ;
assume
A16: ((
Den (o,B))
. a)
<> ((
Den (o,A))
. a);
A17: (
dom (
Den (o,A)))
= (
Args (o,A)) by
FUNCT_2:def 1;
((
Den (o,B))
. a)
= ((((((X
# )
* the
Arity of S)
. o)
--> ((the
Sorts of A
* the
ResultSort of S)
. o))
+* (the
Charact of A
. o))
. a) by
A2
.= ((
Den (o,A))
. a) by
A17,
FUNCT_4: 13;
hence ((
Den (o,B))
. a)
= (the
undefined-map of B
. (
the_result_sort_of o)) by
A16;
end;
thus the
Sorts of B is
non-empty;
thus thesis;
end;
end
begin
definition
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
struct (
UAStr)
ProgramAlgStr over J,T,X
(# the
carrier ->
set,
the
charact ->
PFuncFinSequence of the carrier,
the
assignments ->
Function of (
Union
[|X, the
Sorts of T|]), the carrier #)
attr strict
strict;
end
definition
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
let A be
ProgramAlgStr over J, T, X;
::
AOFA_A00:def16
attr A is
disjoint_valued means the
Sorts of T is
disjoint_valued & the
assignments of A is
one-to-one;
end
registration
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
cluster
partial
quasi_total
non-empty for
strict
ProgramAlgStr over J, T, X;
existence
proof
set A = the non
empty
set;
set char = the
quasi_total
homogeneous non
empty
non-empty
PFuncFinSequence of A;
set assign = the
Function of (
Union
[|X, the
Sorts of T|]), A;
take P =
ProgramAlgStr (# A, char, assign #);
thus the
charact of P is
homogeneous
quasi_total;
thus the
charact of P
<>
{} ;
thus thesis;
end;
end
registration
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
cluster
with_empty-instruction
with_catenation
with_if-instruction
with_while-instruction for
partial
quasi_total
non-empty non
empty
strict
ProgramAlgStr over J, T, X;
existence
proof
set U = the
IfWhileAlgebra;
set I = the
Function of (
Union
[|X, the
Sorts of T|]), the
carrier of U;
set A =
ProgramAlgStr (# the
carrier of U, the
charact of U, I #);
A is
partial
quasi_total
non-empty;
then
reconsider A as
partial
quasi_total
non-empty
strict
ProgramAlgStr over J, T, X;
take A;
thus 1
in (
dom the
charact of A) & (the
charact of A
. 1) is
0
-ary non
empty
homogeneous
quasi_total
PartFunc of (the
carrier of A
* ), the
carrier of A by
AOFA_000:def 10;
thus 2
in (
dom the
charact of A) & (the
charact of A
. 2) is 2
-ary non
empty
homogeneous
quasi_total
PartFunc of (the
carrier of A
* ), the
carrier of A by
AOFA_000:def 11;
thus 3
in (
dom the
charact of A) & (the
charact of A
. 3) is 3
-ary non
empty
homogeneous
quasi_total
PartFunc of (the
carrier of A
* ), the
carrier of A by
AOFA_000:def 12;
thus 4
in (
dom the
charact of A) & (the
charact of A
. 4) is 2
-ary non
empty
homogeneous
quasi_total
PartFunc of (the
carrier of A
* ), the
carrier of A by
AOFA_000:def 13;
thus thesis;
end;
end
theorem ::
AOFA_A00:42
for U1,U2 be
preIfWhileAlgebra st the UAStr of U1
= the UAStr of U2 holds (
EmptyIns U1)
= (
EmptyIns U2) & for I1,J1 be
Element of U1 holds for I2,J2 be
Element of U2 st I1
= I2 & J1
= J2 holds (I1
\; J1)
= (I2
\; J2) & (
while (I1,J1))
= (
while (I2,J2)) & for C1 be
Element of U1 holds for C2 be
Element of U2 st C1
= C2 holds (
if-then-else (C1,I1,J1))
= (
if-then-else (C2,I2,J2));
theorem ::
AOFA_A00:43
Th38: for U1,U2 be
preIfWhileAlgebra st the UAStr of U1
= the UAStr of U2 holds (
ElementaryInstructions U1)
= (
ElementaryInstructions U2)
proof
let U1,U2 be
preIfWhileAlgebra;
assume
A1: the UAStr of U1
= the UAStr of U2;
set Y1 = { (I1
\; I2) where I1,I2 be
Algorithm of U1 : I1
<> (I1
\; I2) & I2
<> (I1
\; I2) };
set Y2 = { (I1
\; I2) where I1,I2 be
Algorithm of U2 : I1
<> (I1
\; I2) & I2
<> (I1
\; I2) };
A2: Y1
= Y2
proof
thus Y1
c= Y2
proof
let x be
object;
assume x
in Y1;
then
consider I1,I2 be
Algorithm of U1 such that
A3: x
= (I1
\; I2) & I1
<> (I1
\; I2) & I2
<> (I1
\; I2);
reconsider I1, I2 as
Algorithm of U2 by
A1;
x
= (I1
\; I2) by
A1,
A3;
hence thesis by
A3;
end;
let x be
object;
assume x
in Y2;
then
consider I1,I2 be
Algorithm of U2 such that
A4: x
= (I1
\; I2) & I1
<> (I1
\; I2) & I2
<> (I1
\; I2);
reconsider I1, I2 as
Algorithm of U1 by
A1;
x
= (I1
\; I2) by
A1,
A4;
hence thesis by
A4;
end;
thus (
ElementaryInstructions U1)
= (
ElementaryInstructions U2) by
A2,
A1;
end;
theorem ::
AOFA_A00:44
Th39: for U1,U2 be
Universal_Algebra holds for S1 be
Subset of U1, S2 be
Subset of U2 st S1
= S2 holds for o1 be
operation of U1, o2 be
operation of U2 st o1
= o2 holds S1
is_closed_on o1 implies S2
is_closed_on o2
proof
let U1,U2 be
Universal_Algebra;
let S1 be
Subset of U1;
let S2 be
Subset of U2;
assume
A1: S1
= S2;
let o1 be
operation of U1;
let o2 be
operation of U2;
assume
A2: o1
= o2;
assume
A3: for s be
FinSequence of S1 st (
len s)
= (
arity o1) holds (o1
. s)
in S1;
let s be
FinSequence of S2;
reconsider s1 = s as
FinSequence of S1 by
A1;
assume (
len s)
= (
arity o2);
hence thesis by
A1,
A2,
A3;
end;
theorem ::
AOFA_A00:45
Th40: for U1,U2 be
Universal_Algebra st the UAStr of U1
= the UAStr of U2 holds for S1 be
Subset of U1, S2 be
Subset of U2 st S1
= S2 holds S1 is
opers_closed implies S2 is
opers_closed
proof
let U1,U2 be
Universal_Algebra;
assume
A1: the UAStr of U1
= the UAStr of U2;
let S1 be
Subset of U1;
let S2 be
Subset of U2;
assume
A2: S1
= S2;
assume
A3: for o be
operation of U1 holds S1
is_closed_on o;
let o be
operation of U2;
reconsider o1 = o as
operation of U1 by
A1;
thus thesis by
A1,
A2,
A3,
Th39;
end;
theorem ::
AOFA_A00:46
Th41: for U1,U2 be
Universal_Algebra st the UAStr of U1
= the UAStr of U2 holds for G be
GeneratorSet of U1 holds G is
GeneratorSet of U2
proof
let U1,U2 be
Universal_Algebra;
assume
A1: the UAStr of U1
= the UAStr of U2;
let G be
GeneratorSet of U1;
reconsider G2 = G as
Subset of U2 by
A1;
G2 is
GeneratorSet of U2
proof
let A be
Subset of U2;
reconsider B = A as
Subset of U1 by
A1;
assume A is
opers_closed;
hence thesis by
A1,
Th40,
FREEALG:def 4;
end;
hence G is
GeneratorSet of U2;
end;
theorem ::
AOFA_A00:47
Th42: for U1,U2 be
Universal_Algebra st the UAStr of U1
= the UAStr of U2 holds (
signature U1)
= (
signature U2)
proof
let U1,U2 be
Universal_Algebra;
assume
A1: the UAStr of U1
= the UAStr of U2;
A2: (
len (
signature U2))
= (
len the
charact of U1) by
A1,
UNIALG_1:def 4;
for i st i
in (
dom (
signature U2)) holds for h be
homogeneous non
empty
PartFunc of (the
carrier of U1
* ), the
carrier of U1 st h
= (the
charact of U1
. i) holds ((
signature U2)
. i)
= (
arity h) by
A1,
UNIALG_1:def 4;
hence (
signature U1)
= (
signature U2) by
A2,
UNIALG_1:def 4;
end;
registration
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
cluster non
degenerated
well_founded
ECIW-strict
infinite for
with_empty-instruction
with_catenation
with_if-instruction
with_while-instruction
partial
quasi_total
non-empty non
empty
strict
ProgramAlgStr over J, T, X;
existence
proof
set U = the
infinite
IfWhileAlgebra;
set I = the
Function of (
Union
[|X, the
Sorts of T|]), the
carrier of U;
set A =
ProgramAlgStr (# the
carrier of U, the
charact of U, I #);
A is
partial
quasi_total
non-empty;
then
reconsider A as
partial
quasi_total
non-empty
strict
ProgramAlgStr over J, T, X;
A is
with_empty-instruction
with_catenation
with_if-instruction
with_while-instruction by
AOFA_000:def 10,
AOFA_000:def 11,
AOFA_000:def 12,
AOFA_000:def 13;
then
reconsider A as
with_empty-instruction
with_catenation
with_if-instruction
with_while-instruction
partial
quasi_total
non-empty
strict
ProgramAlgStr over J, T, X;
take A;
set W = U;
hereby
let I1,I2 be
Element of A;
reconsider J1 = I1, J2 = I2 as
Element of W;
(
EmptyIns A)
= (
EmptyIns W) & (I1
\; I2)
= (J1
\; J2);
hence (I1
<> (
EmptyIns A) implies (I1
\; I2)
<> I2) & (I2
<> (
EmptyIns A) implies (I1
\; I2)
<> I1) & (I1
<> (
EmptyIns A) or I2
<> (
EmptyIns A) implies (I1
\; I2)
<> (
EmptyIns A)) by
AOFA_000:def 24;
end;
hereby
let C,I1,I2 be
Element of A;
reconsider C1 = C, J1 = I1, J2 = I2 as
Element of W;
(
if-then-else (C,I1,I2))
= (
if-then-else (C1,J1,J2)) & (
EmptyIns W)
= (
EmptyIns A);
hence (
if-then-else (C,I1,I2))
<> (
EmptyIns A) by
AOFA_000:def 24;
end;
hereby
let C,I be
Element of A;
reconsider C1 = C, J = I as
Element of W;
(
EmptyIns A)
= (
EmptyIns W) & (
while (C,I))
= (
while (C1,J));
hence (
while (C,I))
<> (
EmptyIns A) by
AOFA_000:def 24;
end;
hereby
let I1,I2,C,J1,J2 be
Element of A;
reconsider C1 = C, K1 = I1, K2 = I2, L1 = J1, L2 = J2 as
Element of W;
(
if-then-else (C,J1,J2))
= (
if-then-else (C1,L1,L2)) & (I1
\; I2)
= (K1
\; K2) & (
EmptyIns W)
= (
EmptyIns A);
hence I1
= (
EmptyIns A) or I2
= (
EmptyIns A) or (I1
\; I2)
<> (
if-then-else (C,J1,J2)) by
AOFA_000:def 24;
end;
hereby
let I1,I2,C,J be
Element of A;
reconsider C1 = C, K1 = I1, K2 = I2, L = J as
Element of W;
(
EmptyIns W)
= (
EmptyIns A) & (I1
\; I2)
= (K1
\; K2) & (
while (C,J))
= (
while (C1,L));
hence I1
<> (
EmptyIns A) & I2
<> (
EmptyIns A) implies (I1
\; I2)
<> (
while (C,J)) by
AOFA_000:def 24;
end;
hereby
let C1,I1,I2,C2,J be
Element of A;
reconsider C3 = C1, K1 = I1, K2 = I2, C4 = C2, L = J as
Element of W;
(
while (C2,J))
= (
while (C4,L)) & (
if-then-else (C1,I1,I2))
= (
if-then-else (C3,K1,K2));
hence (
if-then-else (C1,I1,I2))
<> (
while (C2,J)) by
AOFA_000:def 24;
end;
thus A is
well_founded
proof
A1: the UAStr of W
= the UAStr of A;
then (
ElementaryInstructions W)
= (
ElementaryInstructions A) & (
ElementaryInstructions W) is
GeneratorSet of W by
Th38,
AOFA_000:def 25;
hence (
ElementaryInstructions A) is
GeneratorSet of A by
A1,
Th41;
end;
the UAStr of A
= the UAStr of W;
then (
signature A)
= (
signature W) by
Th42;
hence (
signature A)
=
ECIW-signature by
AOFA_000:def 27;
the UAStr of A
= the UAStr of U;
then (
ElementaryInstructions A)
= (
ElementaryInstructions U) by
Th38;
hence (
ElementaryInstructions A) is
infinite;
end;
end
definition
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
mode
preIfWhileAlgebra of X is
with_empty-instruction
with_catenation
with_if-instruction
with_while-instruction
partial
quasi_total
non-empty non
empty
ProgramAlgStr over J, T, X;
end
definition
let J be non
empty non
void
ManySortedSign;
let T be
MSAlgebra over J;
let X be
GeneratorSet of T;
mode
IfWhileAlgebra of X is non
degenerated
well_founded
ECIW-strict
preIfWhileAlgebra of X;
end
definition
let J be non
empty non
void
ManySortedSign;
let T be
non-empty
MSAlgebra over J;
let X be
non-empty
GeneratorSet of T;
let A be non
empty
ProgramAlgStr over J, T, X;
let a be
SortSymbol of J;
let x be
Element of (X
. a);
let t be
Element of T, a;
::
AOFA_A00:def17
func x
:= (t,A) ->
Algorithm of A equals (the
assignments of A
.
[x, t]);
coherence
proof
(
[|X, the
Sorts of T|]
. a)
=
[:(X
. a), (the
Sorts of T
. a):] by
PBOOLE:def 16;
then (
dom
[|X, the
Sorts of T|])
= the
carrier of J &
[x, t]
in (
[|X, the
Sorts of T|]
. a) by
ZFMISC_1: 87,
PARTFUN1:def 2;
hence thesis by
CARD_5: 2,
FUNCT_2: 5;
end;
end
registration
let S be
set;
let T be
disjoint_valued
non-empty
ManySortedSet of S;
cluster
non-empty for
ManySortedSubset of T;
existence
proof
set Y = the
non-empty
ManySortedSubset of T;
take Y;
thus thesis;
end;
end
definition
let J be non
void non
empty
ManySortedSign;
let T,C be
non-empty
MSAlgebra over J;
let X be
non-empty
GeneratorSet of T;
::
AOFA_A00:def18
func C
-States (X) ->
Subset of (
MSFuncs (X,the
Sorts of C)) means
:
Def18: for s be
ManySortedFunction of X, the
Sorts of C holds s
in it iff ex f be
ManySortedFunction of T, C st f
is_homomorphism (T,C) & s
= (f
|| X);
existence
proof
defpred
P[
object] means ex f be
ManySortedFunction of T, C st f
is_homomorphism (T,C) & $1
= (f
|| X);
consider A be
set such that
A1: for x be
object holds x
in A iff x
in (
MSFuncs (X,the
Sorts of C)) &
P[x] from
XBOOLE_0:sch 1;
A
c= (
MSFuncs (X,the
Sorts of C)) by
A1;
then
reconsider A as
Subset of (
MSFuncs (X,the
Sorts of C));
take A;
let s be
ManySortedFunction of X, the
Sorts of C;
X
is_transformable_to the
Sorts of C;
hence thesis by
A1,
AUTALG_1: 20;
end;
uniqueness
proof
let A1,A2 be
Subset of (
MSFuncs (X,the
Sorts of C)) such that
A2: for s be
ManySortedFunction of X, the
Sorts of C holds s
in A1 iff ex f be
ManySortedFunction of T, C st f
is_homomorphism (T,C) & s
= (f
|| X) and
A3: for s be
ManySortedFunction of X, the
Sorts of C holds s
in A2 iff ex f be
ManySortedFunction of T, C st f
is_homomorphism (T,C) & s
= (f
|| X);
A4: X
is_transformable_to the
Sorts of C;
thus A1
c= A2
proof
let x be
object;
assume
A5: x
in A1;
then
reconsider x as
ManySortedFunction of X, the
Sorts of C by
A4,
AUTALG_1: 19;
ex f be
ManySortedFunction of T, C st f
is_homomorphism (T,C) & x
= (f
|| X) by
A2,
A5;
hence thesis by
A3;
end;
let x be
object;
assume
A6: x
in A2;
then
reconsider x as
ManySortedFunction of X, the
Sorts of C by
A4,
AUTALG_1: 19;
ex f be
ManySortedFunction of T, C st f
is_homomorphism (T,C) & x
= (f
|| X) by
A3,
A6;
hence thesis by
A2;
end;
end
registration
let J be non
void non
empty
ManySortedSign;
let T be
non-empty
MSAlgebra over J;
let C be
non-empty
image of T;
let X be
non-empty
GeneratorSet of T;
cluster (C
-States X) -> non
empty;
coherence
proof
consider h be
ManySortedFunction of T, C such that
A1: h
is_epimorphism (T,C) by
MSAFREE4:def 5;
h
is_homomorphism (T,C) by
A1,
MSUALG_3:def 8;
then (h
|| X)
in (C
-States X) by
Def18;
hence thesis;
end;
end
theorem ::
AOFA_A00:48
Th43: for B be non
void non
empty
ManySortedSign holds for T,C be
non-empty
MSAlgebra over B holds for X be
non-empty
GeneratorSet of T holds for g be
set st g
in (C
-States X) holds g is
ManySortedFunction of X, the
Sorts of C
proof
let B be non
void non
empty
ManySortedSign;
let T,C be
non-empty
MSAlgebra over B;
let X be
non-empty
GeneratorSet of T;
X
is_transformable_to the
Sorts of C;
hence thesis by
AUTALG_1: 19;
end;
registration
let B be non
void non
empty
ManySortedSign;
let T,C be
non-empty
MSAlgebra over B;
let X be
non-empty
GeneratorSet of T;
cluster ->
Relation-like
Function-like for
Element of (C
-States X);
coherence
proof
let g be
Element of (C
-States X);
(C
-States X) is
empty or (C
-States X) is non
empty;
hence thesis by
Th43;
end;
end
registration
let B be non
void non
empty
ManySortedSign;
let T,C be
non-empty
MSAlgebra over B;
let X be
non-empty
GeneratorSet of T;
cluster ->
Function-yieldingthe
carrier of B
-defined for
Element of (C
-States X);
coherence
proof
let g be
Element of (C
-States X);
(C
-States X) is
empty or (C
-States X) is non
empty;
then g is
empty or g
in (C
-States X) by
SUBSET_1:def 1;
hence thesis by
Th43,
RELAT_1: 171;
end;
end
registration
let B be non
void non
empty
ManySortedSign;
let T be
non-empty
MSAlgebra over B;
let C be
non-empty
image of T;
let X be
non-empty
GeneratorSet of T;
cluster ->
total for
Element of (C
-States X);
coherence by
Th43;
end
definition
let B be non
void non
empty
ManySortedSign;
let T be
non-empty
MSAlgebra over B;
let C be
non-empty
MSAlgebra over B;
let X be
non-empty
GeneratorSet of T;
let a be
SortSymbol of B;
let x be
Element of (X
. a);
let f be
Element of C, a;
::
AOFA_A00:def19
func f
-States (X,x) ->
Subset of (C
-States X) means for s be
ManySortedFunction of X, the
Sorts of C holds s
in it iff s
in (C
-States X) & ((s
. a)
. x)
<> f;
existence
proof
defpred
P[
object] means ex s be
ManySortedFunction of X, the
Sorts of C st s
= $1 & ((s
. a)
. x)
<> f;
consider S be
set such that
A1: for x be
object holds x
in S iff x
in (C
-States X) &
P[x] from
XBOOLE_0:sch 1;
S
c= (C
-States X) by
A1;
then
reconsider S as
Subset of (C
-States X);
take S;
let s be
ManySortedFunction of X, the
Sorts of C;
hereby
assume s
in S;
then s
in (C
-States X) &
P[s] by
A1;
hence s
in (C
-States X) & ((s
. a)
. x)
<> f;
end;
thus thesis by
A1;
end;
uniqueness
proof
let S1,S2 be
Subset of (C
-States X) such that
A2: for s be
ManySortedFunction of X, the
Sorts of C holds s
in S1 iff s
in (C
-States X) & ((s
. a)
. x)
<> f and
A3: for s be
ManySortedFunction of X, the
Sorts of C holds s
in S2 iff s
in (C
-States X) & ((s
. a)
. x)
<> f;
thus S1
c= S2
proof
let c be
object;
assume
A4: c
in S1;
then
reconsider s = c as
ManySortedFunction of X, the
Sorts of C by
Th43;
s
in (C
-States X) & ((s
. a)
. x)
<> f by
A2,
A4;
hence thesis by
A3;
end;
let c be
object;
assume
A5: c
in S2;
then
reconsider s = c as
ManySortedFunction of X, the
Sorts of C by
Th43;
s
in (C
-States X) & ((s
. a)
. x)
<> f by
A3,
A5;
hence thesis by
A2;
end;
end
registration
let B be non
void non
empty
ManySortedSign;
let T be
free
non-empty
MSAlgebra over B;
let C be
non-empty
MSAlgebra over B;
let X be
non-empty
GeneratorSet of T;
cluster (C
-States X) -> non
empty;
coherence
proof
set G = the
free
GeneratorSet of T;
set f = the
ManySortedFunction of G, the
Sorts of C;
consider h be
ManySortedFunction of T, C such that
A1: h
is_homomorphism (T,C) & (h
|| G)
= f by
MSAFREE:def 5;
(h
|| X)
in (C
-States X) by
A1,
Def18;
hence thesis;
end;
end
registration
let S be non
empty non
void
ManySortedSign;
let A be
non-empty
MSAlgebra over S;
let o be
OperSymbol of S;
cluster ->
Function-like
Relation-like for
Element of (
Args (o,A));
coherence
proof
let a be
Element of (
Args (o,A));
(
dom the
Arity of S)
= the
carrier' of S by
FUNCT_2:def 1;
then (
Args (o,A))
= ((the
Sorts of A
# )
. (
the_arity_of o)) by
FUNCT_1: 13
.= (
product (the
Sorts of A
* (
the_arity_of o))) by
FINSEQ_2:def 5;
hence thesis;
end;
end
registration
let B be non
void non
empty
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of B;
let T be X, B
-terms
non-empty
MSAlgebra over B;
let C be
non-empty
image of T;
let G be
non-empty
GeneratorSet of T;
cluster (C
-States G) -> non
empty;
coherence ;
end
definition
let B be non
void non
empty
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of B;
let T be X, B
-terms
non-empty
MSAlgebra over B;
let C be
non-empty
image of T;
let a be
SortSymbol of B;
let t be
Element of T, a;
let s be
Function-yielding
Function;
given h be
ManySortedFunction of T, C, Q be
GeneratorSet of T such that
A1: h
is_homomorphism (T,C) & Q
= (
doms s) & s
= (h
|| Q);
::
AOFA_A00:def20
func t
value_at (C,s) ->
Element of C, a means ex f be
ManySortedFunction of T, C, Q be
GeneratorSet of T st f
is_homomorphism (T,C) & Q
= (
doms s) & s
= (f
|| Q) & it
= ((f
. a)
. t);
existence
proof
reconsider d = ((h
. a)
. t) as
Element of (the
Sorts of C
. a) by
FUNCT_2: 5;
take d;
take h;
thus thesis by
A1;
end;
uniqueness by
EXTENS_1: 19;
end
begin
definition
let S, X;
let T be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
MSAlgebra over S;
struct
GeneratorSystem over S,X,T
(# the
generators ->
non-empty
GeneratorSet of T,
the
supported-var ->
ManySortedFunction of the generators, (
FreeGen X),
the
supported-term ->
ManySortedMSSet of the generators, the
carrier of S #)
attr strict
strict;
end
definition
let S, X;
let T be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
MSAlgebra over S;
let G be
GeneratorSystem over S, X, T;
let s be
SortSymbol of S;
::
AOFA_A00:def21
mode
Element of G,s ->
Element of T, s means
:
Def21: it
in (the
generators of G
. s);
existence
proof
set t = the
Element of (the
generators of G
. s);
(the
generators of G
. s)
c= (the
Sorts of T
. s) & t
in (the
generators of G
. s) by
PBOOLE:def 2,
PBOOLE:def 18;
hence thesis;
end;
end
definition
let S, X;
let T be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
MSAlgebra over S;
let G be
GeneratorSystem over S, X, T;
let s be
SortSymbol of S;
::
AOFA_A00:def22
func G
. s ->
Component of the
generators of G equals (the
generators of G
. s);
coherence ;
let g be
Element of G, s;
::
AOFA_A00:def23
func
supp-var g ->
Element of ((
FreeGen X)
. s) equals ((the
supported-var of G
. s)
. g);
coherence by
Def21,
FUNCT_2: 5;
end
definition
let S, X;
let T be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S;
let G be
GeneratorSystem over S, X, T;
let s be
SortSymbol of S;
let g be
Element of G, s;
assume
A1: ((the
supported-term of G
. s)
. g) is
ManySortedFunction of (
vf g), the
Sorts of T;
::
AOFA_A00:def24
func
supp-term g ->
ManySortedFunction of (
vf g), the
Sorts of T equals ((the
supported-term of G
. s)
. g);
coherence by
A1;
end
definition
let S be non
void non
empty
ManySortedSign;
let X be
non-empty
ManySortedSet of the
carrier of S;
let T be
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S;
let C be
non-empty
image of T;
let G be
GeneratorSystem over S, X, T;
::
AOFA_A00:def25
attr G is C
-supported means (
FreeGen X) is
ManySortedSubset of the
generators of G & for s be
SortSymbol of S holds (
dom (the
supported-term of G
. s))
= (G
. s) & for t be
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 be
Element of (C
-States the
generators of G) st ((v
. s)
. (
supp-var t))
= ((v
. s)
. t) holds for r be
SortSymbol of S holds for x be
Element of ((
FreeGen X)
. r) holds for q be
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 be
ManySortedSubset of the
generators of G st H
= (
FreeGen X) holds for v be
Element of C, s holds for f be
ManySortedFunction of the
generators of G, the
Sorts of C st f
in (C
-States the
generators of G) holds for u be
ManySortedFunction of (
FreeGen X), the
Sorts of C st for a be
SortSymbol of S holds for z be
Element of ((
FreeGen X)
. a) st z
in ((
vf t)
. a) holds for q be
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 be
ManySortedSubset of the
Sorts of T st H
= (
FreeGen X) holds for h be
ManySortedFunction of T, C st h
is_homomorphism (T,C) & (h
|| H)
= u holds v
= ((h
. s)
. t));
end
definition
let S;
let X;
let A be
vf-free
all_vars_including
inheriting_operations
free_in_itselfX, S
-terms
VarMSAlgebra over S;
let C be
non-empty
image of A;
let G be
GeneratorSystem over S, X, A;
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;
::
AOFA_A00:def26
func
succ (s,t,v) ->
Element of (C
-States the
generators of G) means ((it
. r)
. t)
= v & for p be
SortSymbol of S holds for x be
Element of ((
FreeGen X)
. p) st p
= r implies x
<> t holds (x
nin ((
vf t)
. p) implies ((it
. p)
. x)
= ((s
. p)
. x)) & for u be
ManySortedFunction of (
FreeGen X), the
Sorts of C holds for H be
ManySortedSubset of the
generators of G st H
= (
FreeGen X) holds for f be
ManySortedFunction of the
generators of G, the
Sorts of C st f
= s & u
= ((f
|| H)
+* (r,(
supp-var t),v)) holds (x
in ((
vf t)
. p) implies for q be
Element of A, p st q
= (((
supp-term t)
. p)
. x) holds ((it
. p)
. x)
= (q
value_at (C,u)));
existence
proof
reconsider H = (
FreeGen X) as
ManySortedSubset of the
generators of G by
A1;
reconsider I = (
FreeGen X) as
GeneratorSet of A by
MSAFREE4: 45;
reconsider f1 = s as
ManySortedFunction of the
generators of G, the
Sorts of C by
Th43;
set g = (f1
|| H);
set r0 = r;
defpred
P[
object,
object] means ex f be
Function st f
= $2 & (
dom f)
= (H
. $1) & ($1
= r0 & t
in (H
. r0) implies (f
. t)
= v) & for r be
SortSymbol of S st $1
= r holds for x be
Element of (H
. r) st r
= r0 implies x
<> t holds (x
nin ((
vf t)
. r) implies (f
. x)
= ((g
. r)
. x)) & (x
in ((
vf t)
. r) implies for q be
Element of A, r st q
= (((
supp-term t)
. r)
. x) holds for u be
ManySortedFunction of H, the
Sorts of C st u
= (g
+* (r0,(
supp-var t),v)) holds (f
. x)
= (q
value_at (C,u)));
A2: for x be
object st x
in the
carrier of S holds ex y be
object st
P[x, y]
proof
let x be
object;
assume x
in the
carrier of S;
then
reconsider p = x as
SortSymbol of S;
defpred
Q[
object,
object] means (p
= r & $1
= t implies $2
= v) & ((p
= r implies $1
<> t) implies ($1
nin ((
vf t)
. x) implies $2
= ((g
. x)
. $1)) & ($1
in ((
vf t)
. x) implies for r be
SortSymbol of S st x
= r holds for q be
Element of (the
Sorts of A
. r) st q
= (((
supp-term t)
. r)
. $1) holds for u be
ManySortedFunction of H, the
Sorts of C st u
= (g
+* (r0,(
supp-var t),v)) holds $2
= (q
value_at (C,u))));
A3: for y be
object st y
in (H
. x) holds ex z be
object st
Q[y, z]
proof
let y be
object;
assume y
in (H
. x);
per cases ;
suppose
A4: p
= r & y
= t;
take z = v;
thus thesis by
A4;
end;
suppose
A5: (p
= r implies y
<> t) & y
in ((
vf t)
. x);
then
reconsider q = (((
supp-term t)
. p)
. y) as
Element of (the
Sorts of A
. p) by
FUNCT_2: 5;
take z = (q
value_at (C,(g
+* (r0,(
supp-var t),v))));
thus thesis by
A5;
end;
suppose
A6: (p
= r implies y
<> t) & y
nin ((
vf t)
. x);
take z = ((g
. x)
. y);
thus thesis by
A6;
end;
end;
consider j be
Function such that
A7: (
dom j)
= (H
. x) & for y be
object st y
in (H
. x) holds
Q[y, (j
. y)] from
CLASSES1:sch 1(
A3);
take j;
thus
P[x, j]
proof
take f = j;
thus f
= j & (
dom f)
= (H
. x) by
A7;
thus x
= r0 & t
in (H
. r0) implies (f
. t)
= v by
A7;
let r be
SortSymbol of S;
assume
A8: x
= r;
let x be
Element of (H
. r);
assume
A9: r
= r0 implies x
<> t;
hence (x
nin ((
vf t)
. r) implies (f
. x)
= ((g
. r)
. x)) by
A7,
A8;
thus (x
in ((
vf t)
. r) implies for q be
Element of A, r st q
= (((
supp-term t)
. r)
. x) holds for u be
ManySortedFunction of H, the
Sorts of C st u
= (g
+* (r0,(
supp-var t),v)) holds (f
. x)
= (q
value_at (C,u))) by
A8,
A7,
A9;
end;
end;
consider k be
Function such that
A10: (
dom k)
= the
carrier of S & for x be
object st x
in the
carrier of S holds
P[x, (k
. x)] from
CLASSES1:sch 1(
A2);
reconsider k as
ManySortedSet of the
carrier of S by
A10,
RELAT_1:def 18,
PARTFUN1:def 2;
k is
Function-yielding
proof
let x be
object;
assume x
in (
dom k);
then
P[x, (k
. x)] by
A10;
hence thesis;
end;
then
reconsider k as
ManySortedFunction of the
carrier of S;
k is
ManySortedFunction of H, the
Sorts of C
proof
let x be
object;
assume x
in the
carrier of S;
then
reconsider p = x as
SortSymbol of S;
consider f be
Function such that
A11: (k
. p)
= f & (
dom f)
= (H
. p) & (p
= r0 & t
in (H
. r0) implies (f
. t)
= v) & for r be
SortSymbol of S st p
= r holds for x be
Element of (H
. r) st r
= r0 implies x
<> t holds (x
nin ((
vf t)
. r) implies (f
. x)
= ((g
. r)
. x)) & (x
in ((
vf t)
. r) implies for q be
Element of A, r st q
= (((
supp-term t)
. r)
. x) holds for u be
ManySortedFunction of H, the
Sorts of C st u
= (g
+* (r0,(
supp-var t),v)) holds (f
. x)
= (q
value_at (C,u))) by
A10;
(
rng f)
c= (the
Sorts of C
. p)
proof
let y be
object;
assume y
in (
rng f);
then
consider z be
object such that
A12: z
in (
dom f) & y
= (f
. z) by
FUNCT_1:def 3;
per cases ;
suppose
A13: r
= p & z
= t;
thus y
in (the
Sorts of C
. p) by
A11,
A12,
A13;
end;
suppose (p
= r implies t
<> z) & z
nin ((
vf t)
. p);
then y
= ((g
. p)
. z) by
A11,
A12;
hence y
in (the
Sorts of C
. p) by
A11,
A12,
FUNCT_2: 5;
end;
suppose
A14: (p
= r implies t
<> z) & z
in ((
vf t)
. p);
(
vf t) is
ManySortedSubset of H by
Th35;
then ((
vf t)
. p)
c= (H
. p) by
PBOOLE:def 2,
PBOOLE:def 18;
then
reconsider z as
Element of (H
. p) by
A14;
reconsider q = (((
supp-term t)
. p)
. z) as
Element of (the
Sorts of A
. p) by
A14,
FUNCT_2: 5;
reconsider u = (g
+* (r0,(
supp-var t),v)) as
ManySortedFunction of H, the
Sorts of C;
y
= (q
value_at (C,u)) by
A12,
A14,
A11;
hence thesis;
end;
end;
hence thesis by
A11,
FUNCT_2: 2;
end;
then
reconsider k as
ManySortedFunction of H, the
Sorts of C;
consider h be
ManySortedFunction of A, C such that
A15: h
is_homomorphism (A,C) & k
= (h
|| I) by
MSAFREE4: 46;
reconsider w = (h
|| the
generators of G) as
Element of (C
-States the
generators of G) by
A15,
Def18;
take w;
hereby
per cases ;
suppose
A16: t
in (H
. r0);
A17:
P[r0, (k
. r0)] by
A10;
thus ((w
. r)
. t)
= (((h
. r)
| (the
generators of G
. r))
. t) by
MSAFREE:def 1
.= ((h
. r)
. t) by
Def21,
FUNCT_1: 49
.= (((h
. r)
| (H
. r))
. t) by
A16,
FUNCT_1: 49
.= v by
A17,
A16,
A15,
MSAFREE:def 1;
end;
suppose
A18: t
nin (H
. r0);
A19:
now
let a be
SortSymbol of S;
A20:
P[a, (k
. a)] by
A10;
let z be
Element of ((
FreeGen X)
. a);
a
= r0 implies t
<> z by
A18;
hence z
in ((
vf t)
. a) implies for q be
Element of A, a st q
= (((
supp-term t)
. a)
. z) holds ((k
. a)
. z)
= (q
value_at (C,(g
+* (r0,(
supp-var t),v)))) by
A20;
end;
thus ((w
. r)
. t)
= (((h
. r)
| (the
generators of G
. r))
. t) by
MSAFREE:def 1
.= ((h
. r)
. t) by
Def21,
FUNCT_1: 49
.= v by
A15,
A18,
A19,
A1;
end;
end;
let p be
SortSymbol of S;
let x be
Element of ((
FreeGen X)
. p);
assume
A21: p
= r implies x
<> t;
reconsider x0 = x as
Element of (H
. p);
consider f be
Function such that
A22: f
= (k
. p) & (
dom f)
= (H
. p) & (p
= r & t
in (H
. r0) implies (f
. t)
= v) & for r be
SortSymbol of S st p
= r holds for x be
Element of (H
. r) st r
= r0 implies x
<> t holds (x
nin ((
vf t)
. r) implies (f
. x)
= ((g
. r)
. x)) & (x
in ((
vf t)
. r) implies for q be
Element of A, r st q
= (((
supp-term t)
. r)
. x) holds for u be
ManySortedFunction of H, the
Sorts of C st u
= (g
+* (r0,(
supp-var t),v)) holds (f
. x)
= (q
value_at (C,u))) by
A10;
A23: x
in (H
. p) & (H
. p)
c= (the
generators of G
. p) by
PBOOLE:def 2,
PBOOLE:def 18;
A24: ((w
. p)
. x)
= (((h
. p)
| (the
generators of G
. p))
. x) by
MSAFREE:def 1
.= ((h
. p)
. x) by
A23,
FUNCT_1: 49
.= (((h
. p)
| (I
. p))
. x) by
FUNCT_1: 49
.= ((k
. p)
. x) by
A15,
MSAFREE:def 1;
((g
. p)
. x)
= (((f1
. p)
| (H
. p))
. x) by
MSAFREE:def 1
.= ((s
. p)
. x) by
FUNCT_1: 49;
hence x
nin ((
vf t)
. p) implies ((w
. p)
. x)
= ((s
. p)
. x) by
A21,
A22,
A24;
let u be
ManySortedFunction of (
FreeGen X), the
Sorts of C;
let H be
ManySortedSubset of the
generators of G such that
A25: H
= (
FreeGen X);
let f be
ManySortedFunction of the
generators of G, the
Sorts of C such that
A26: f
= s & u
= ((f
|| H)
+* (r,(
supp-var t),v));
assume
A27: x
in ((
vf t)
. p);
let q be
Element of A, p;
assume q
= (((
supp-term t)
. p)
. x);
hence ((w
. p)
. x)
= (q
value_at (C,u)) by
A21,
A24,
A22,
A25,
A26,
A27;
end;
uniqueness
proof
let w1,w2 be
Element of (C
-States the
generators of G);
assume that
A28: ((w1
. r)
. t)
= v & for p be
SortSymbol of S holds for x be
Element of ((
FreeGen X)
. p) st p
= r implies x
<> t holds (x
nin ((
vf t)
. p) implies ((w1
. p)
. x)
= ((s
. p)
. x)) & for u be
ManySortedFunction of (
FreeGen X), the
Sorts of C holds for H be
ManySortedSubset of the
generators of G st H
= (
FreeGen X) holds for f be
ManySortedFunction of the
generators of G, the
Sorts of C st f
= s & u
= ((f
|| H)
+* (r,(
supp-var t),v)) holds (x
in ((
vf t)
. p) implies for q be
Element of A, p st q
= (((
supp-term t)
. p)
. x) holds ((w1
. p)
. x)
= (q
value_at (C,u))) and
A29: ((w2
. r)
. t)
= v & for p be
SortSymbol of S holds for x be
Element of ((
FreeGen X)
. p) st p
= r implies x
<> t holds (x
nin ((
vf t)
. p) implies ((w2
. p)
. x)
= ((s
. p)
. x)) & for u be
ManySortedFunction of (
FreeGen X), the
Sorts of C holds for H be
ManySortedSubset of the
generators of G st H
= (
FreeGen X) holds for f be
ManySortedFunction of the
generators of G, the
Sorts of C st f
= s & u
= ((f
|| H)
+* (r,(
supp-var t),v)) holds (x
in ((
vf t)
. p) implies for q be
Element of A, p st q
= (((
supp-term t)
. p)
. x) holds ((w2
. p)
. x)
= (q
value_at (C,u)));
reconsider g1 = w1, g2 = w2 as
ManySortedFunction of the
generators of G, the
Sorts of C by
Th43;
reconsider H = (
FreeGen X) as
ManySortedSubset of the
generators of G by
A1;
A30:
now
let x be
object;
assume x
in the
carrier of S;
then
reconsider p = x as
SortSymbol of S;
A31: (
dom ((g1
|| H)
. p))
= (H
. p) & (
dom ((g2
|| H)
. p))
= (H
. p) by
FUNCT_2:def 1;
now
let y be
object;
assume
A32: y
in (H
. p);
per cases ;
suppose
A33: y
= t & p
= r;
thus (((g1
|| H)
. p)
. y)
= (((g1
. p)
| (H
. p))
. y) by
MSAFREE:def 1
.= v by
A28,
A33,
A32,
FUNCT_1: 49
.= (((g2
. p)
| (H
. p))
. y) by
A29,
A33,
A32,
FUNCT_1: 49
.= (((g2
|| H)
. p)
. y) by
MSAFREE:def 1;
end;
suppose
A34: (p
= r implies y
<> t) & y
nin ((
vf t)
. p);
thus (((g1
|| H)
. p)
. y)
= (((g1
. p)
| (H
. p))
. y) by
MSAFREE:def 1
.= ((g1
. p)
. y) by
A32,
FUNCT_1: 49
.= ((s
. p)
. y) by
A28,
A34,
A32
.= ((g2
. p)
. y) by
A29,
A34,
A32
.= (((g2
. p)
| (H
. p))
. y) by
A32,
FUNCT_1: 49
.= (((g2
|| H)
. p)
. y) by
MSAFREE:def 1;
end;
suppose
A35: (p
= r implies y
<> t) & y
in ((
vf t)
. p);
reconsider q = (((
supp-term t)
. p)
. y) as
Element of A, p by
A35,
FUNCT_2: 5;
reconsider f = s as
ManySortedFunction of the
generators of G, the
Sorts of C by
Th43;
reconsider u = ((f
|| H)
+* (r,(
supp-var t),v)) as
ManySortedFunction of (
FreeGen X), the
Sorts of C;
thus (((g1
|| H)
. p)
. y)
= (((g1
. p)
| (H
. p))
. y) by
MSAFREE:def 1
.= ((g1
. p)
. y) by
A32,
FUNCT_1: 49
.= (q
value_at (C,u)) by
A28,
A35,
A32
.= ((w2
. p)
. y) by
A29,
A35,
A32
.= (((g2
. p)
| (H
. p))
. y) by
A32,
FUNCT_1: 49
.= (((g2
|| H)
. p)
. y) by
MSAFREE:def 1;
end;
end;
hence ((g1
|| H)
. x)
= ((g2
|| H)
. x) by
A31;
end;
consider h1 be
ManySortedFunction of A, C such that
A36: h1
is_homomorphism (A,C) & g1
= (h1
|| the
generators of G) by
Def18;
consider h2 be
ManySortedFunction of A, C such that
A37: h2
is_homomorphism (A,C) & g2
= (h2
|| the
generators of G) by
Def18;
reconsider I = H as
GeneratorSet of A by
MSAFREE4: 45;
(h1
|| I)
= (g1
|| H) & (h2
|| I)
= (g2
|| H) by
A36,
A37,
EQUATION: 5;
hence thesis by
A30,
A36,
A37,
EXTENS_1: 19,
PBOOLE: 3;
end;
end
definition
let B be non
void non
empty
ManySortedSign;
let Y be
non-empty
ManySortedSet of the
carrier of B;
let T be
vf-free
all_vars_including
inheriting_operations
free_in_itselfY, B
-terms
VarMSAlgebra over B;
let C be
non-empty
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;
::
AOFA_A00:def27
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 be
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 be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s))));
existence
proof
defpred
P[
object] means ex f be
Function of
[:(C
-States the
generators of X), the
carrier of A:], (C
-States the
generators of X) st $1
= f & f is
ExecutionFunction of A, (C
-States the
generators of X), (z
-States (the
generators of X,x)) & for s be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s))));
consider Z be
set such that
A1: for c be
object holds c
in Z iff c
in (
Funcs (
[:(C
-States the
generators of X), the
carrier of A:],(C
-States the
generators of X))) &
P[c] from
XBOOLE_0:sch 1;
Z
c= (
Funcs (
[:(C
-States the
generators of X), the
carrier of A:],(C
-States the
generators of X))) by
A1;
then
reconsider Z as
Subset of (
Funcs (
[:(C
-States the
generators of X), the
carrier of A:],(C
-States the
generators of X)));
take Z;
let f be
Function of
[:(C
-States the
generators of X), the
carrier of A:], (C
-States the
generators of X);
hereby
assume f
in Z;
then
P[f] by
A1;
hence f is
ExecutionFunction of A, (C
-States the
generators of X), (z
-States (the
generators of X,x)) & for s be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s))));
end;
f
in (
Funcs (
[:(C
-States the
generators of X), the
carrier of A:],(C
-States the
generators of X))) by
FUNCT_2: 8;
hence thesis by
A1;
end;
uniqueness
proof
let Z1,Z2 be
Subset of (
Funcs (
[:(C
-States the
generators of X), the
carrier of A:],(C
-States the
generators of X))) such that
A2: for f be
Function of
[:(C
-States the
generators of X), the
carrier of A:], (C
-States the
generators of X) holds f
in Z1 iff f is
ExecutionFunction of A, (C
-States the
generators of X), (z
-States (the
generators of X,x)) & for s be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s)))) and
A3: for f be
Function of
[:(C
-States the
generators of X), the
carrier of A:], (C
-States the
generators of X) holds f
in Z2 iff f is
ExecutionFunction of A, (C
-States the
generators of X), (z
-States (the
generators of X,x)) & for s be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s))));
thus Z1
c= Z2
proof
let c be
object;
assume
A4: c
in Z1;
then
reconsider f = c as
Function of
[:(C
-States the
generators of X), the
carrier of A:], (C
-States the
generators of X) by
FUNCT_2: 66;
f is
ExecutionFunction of A, (C
-States the
generators of X), (z
-States (the
generators of X,x)) & for s be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s)))) by
A2,
A4;
hence thesis by
A3;
end;
let c be
object;
assume
A5: c
in Z2;
then
reconsider f = c as
Function of
[:(C
-States the
generators of X), the
carrier of A:], (C
-States the
generators of X) by
FUNCT_2: 66;
f is
ExecutionFunction of A, (C
-States the
generators of X), (z
-States (the
generators of X,x)) & for s be
Element of (C
-States the
generators of X) holds for b be
SortSymbol of B holds for v be
Element of (the
generators of X
. b) holds for v0 be
Element of X, b st v0
= v holds for t be
Element of T, b holds (f
. (s,(v
:= (t,A))))
= (
succ (s,v0,(t
value_at (C,s)))) by
A3,
A5;
hence thesis by
A2;
end;
end
begin
definition
struct (
ManySortedSign)
ConnectivesSignature
(# the
carrier,
carrier' ->
set,
the
Arity ->
Function of the carrier', ( the carrier
* ),
the
ResultSort ->
Function of the carrier', the carrier,
the
connectives ->
FinSequence of the carrier' #)
attr strict
strict;
end
definition
let S be
ConnectivesSignature;
::
AOFA_A00:def28
attr S is
1-1-connectives means
:
Def28: the
connectives of S is
one-to-one;
end
definition
let n be
Nat;
let S be
ConnectivesSignature;
::
AOFA_A00:def29
attr S is n
-connectives means
:
Def29: (
len the
connectives of S)
= n;
end
registration
let n be
Nat;
cluster n
-connectives non
empty non
void for
strict
ConnectivesSignature;
existence
proof
set S = the non
empty non
void
ManySortedSign;
set o = the
OperSymbol of S;
reconsider c = (n
|-> o) as n
-element
FinSequence of the
carrier' of S;
take C =
ConnectivesSignature (# the
carrier of S, the
carrier' of S, the
Arity of S, the
ResultSort of S, c #);
thus (
len the
connectives of C)
= n by
CARD_1:def 7;
thus the
carrier of C is non
empty;
thus the
carrier' of C is non
empty;
end;
end
definition
struct (
ConnectivesSignature)
BoolSignature
(# the
carrier,
carrier' ->
set,
the
Arity ->
Function of the carrier', ( the carrier
* ),
the
ResultSort ->
Function of the carrier', the carrier,
the
bool-sort ->
Element of the carrier,
the
connectives ->
FinSequence of the carrier' #)
attr strict
strict;
end
registration
let n be
Nat;
cluster n
-connectives non
empty non
void for
strict
BoolSignature;
existence
proof
set S = the non
empty non
void
ManySortedSign;
set o = the
OperSymbol of S;
reconsider c = (n
|-> o) as n
-element
FinSequence of the
carrier' of S;
set b = the
SortSymbol of S;
take C =
BoolSignature (# the
carrier of S, the
carrier' of S, the
Arity of S, the
ResultSort of S, b, c #);
thus (
len the
connectives of C)
= n by
CARD_1:def 7;
thus the
carrier of C is non
empty;
thus the
carrier' of C is non
empty;
end;
end
definition
let B be
BoolSignature;
::
AOFA_A00:def30
attr B is
bool-correct means
:
Def30: (
len the
connectives of B)
>= 3 & (the
connectives of B
. 1)
is_of_type (
{} ,the
bool-sort of B) & (the
connectives of B
. 2)
is_of_type (
<*the
bool-sort of B*>,the
bool-sort of B) & (the
connectives of B
. 3)
is_of_type (
<*the
bool-sort of B, the
bool-sort of B*>,the
bool-sort of B);
end
registration
cluster 3
-connectives
1-1-connectives
bool-correct non
empty non
void for
strict
BoolSignature;
existence
proof
set X =
{
0 }, Y =
{
0 , 1, 2};
reconsider 00 =
0 as
Element of X by
TARSKI:def 1;
reconsider 01 = 1, 02 = 2, y0 =
0 as
Element of Y by
ENUMSET1:def 1;
set a = ((
0 ,1,2)
--> (
{} ,
<*00*>,
<*00, 00*>));
set r = (
{
0 , 1, 2}
--> 00);
A1: (
0 ,1,2)
are_mutually_distinct ;
(
<*> X)
in (X
* ) &
<*00*>
in (X
* ) &
<*00, 00*>
in (X
* ) by
FINSEQ_1:def 11;
then
{
{} ,
<*00*>,
<*00, 00*>}
c= (X
* ) by
ZFMISC_1: 133;
then (
rng a)
c= (X
* ) & (
dom a)
= Y by
FUNCT_4: 128,
FUNCT_4: 147,
A1;
then
reconsider a as
Function of Y, (X
* ) by
FUNCT_2: 2;
reconsider r as
Function of Y, X;
take B =
BoolSignature (# X, Y, a, r, 00,
<*y0, 01, 02*> #);
thus (
len the
connectives of B)
= 3 by
FINSEQ_1: 45;
thus the
connectives of B is
one-to-one by
FINSEQ_3: 95;
thus (
len the
connectives of B)
>= 3 by
FINSEQ_1: 45;
(the
connectives of B
. 1)
=
0 by
FINSEQ_1: 45;
hence (the
Arity of B
. (the
connectives of B
. 1))
=
{} by
FUNCT_4: 134;
thus (the
ResultSort of B
. (the
connectives of B
. 1))
= the
bool-sort of B;
(the
connectives of B
. 2)
= 1 by
FINSEQ_1: 45;
hence (the
Arity of B
. (the
connectives of B
. 2))
=
<*the
bool-sort of B*> by
FUNCT_4: 135;
thus (the
ResultSort of B
. (the
connectives of B
. 2))
= the
bool-sort of B;
(the
connectives of B
. 3)
= 2 by
FINSEQ_1: 45;
hence (the
Arity of B
. (the
connectives of B
. 3))
=
<*the
bool-sort of B, the
bool-sort of B*> by
FUNCT_4: 135;
thus (the
ResultSort of B
. (the
connectives of B
. 3))
= the
bool-sort of B;
thus the
carrier of B is non
empty;
thus the
carrier' of B is non
empty;
thus thesis;
end;
end
registration
cluster
1-1-connectives non
empty non
void for
ConnectivesSignature;
existence
proof
set S = the
1-1-connectives
bool-correct non
empty non
void
BoolSignature;
take S;
thus thesis;
end;
end
registration
let S be
1-1-connectives non
empty non
void
ConnectivesSignature;
cluster the
connectives of S ->
one-to-one;
coherence by
Def28;
end
definition
let S be non
empty non
void
BoolSignature;
let B be
MSAlgebra over S;
::
AOFA_A00:def31
attr B is
bool-correct means
:
Def31: (the
Sorts of B
. the
bool-sort of S)
=
BOOLEAN & ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),B))
.
{} )
=
TRUE & for x,y be
boolean
object holds ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),B))
.
<*x*>)
= (
'not' x) & ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),B))
.
<*x, y*>)
= (x
'&' y);
end
theorem ::
AOFA_A00:49
Th44: for A be non
empty
set, n be
Nat holds for f be
Function of (n
-tuples_on A), A holds f is
homogeneous
quasi_total non
empty
PartFunc of (A
* ), A & for g be
homogeneous
Function st f
= g holds g is n
-ary
proof
let A be non
empty
set;
let n be
Nat;
let f be
Function of (n
-tuples_on A), A;
A1: n
in
NAT by
ORDINAL1:def 12;
then (n
-tuples_on A)
c= (A
* ) by
FINSEQ_2: 134;
then
reconsider f as
PartFunc of (A
* ), A by
RELSET_1: 7;
A2: (
dom f)
= (n
-tuples_on A) by
FUNCT_2:def 1;
then
reconsider f as
homogeneous
PartFunc of (A
* ), A by
A1,
COMPUT_1: 16;
set t = the
Element of (n
-tuples_on A);
(
arity f)
= (
len t) by
A2,
MARGREL1:def 25
.= n by
A1,
FINSEQ_2: 133;
hence thesis by
A2,
COMPUT_1:def 21,
COMPUT_1: 22;
end;
registration
let A be non
empty
set;
let n be
Nat;
cluster n
-ary for
homogeneous
quasi_total non
empty
PartFunc of (A
* ), A;
existence
proof
set f = the
Function of (n
-tuples_on A), A;
A1: n
in
NAT by
ORDINAL1:def 12;
then (n
-tuples_on A)
c= (A
* ) by
FINSEQ_2: 134;
then
reconsider f as
PartFunc of (A
* ), A by
RELSET_1: 7;
A2: (
dom f)
= (n
-tuples_on A) by
FUNCT_2:def 1;
then
reconsider f as
homogeneous
PartFunc of (A
* ), A by
A1,
COMPUT_1: 16;
set t = the
Element of (n
-tuples_on A);
A3: (
arity f)
= (
len t) by
A2,
MARGREL1:def 25
.= n by
A1,
FINSEQ_2: 133;
then
reconsider f as
homogeneous
quasi_total non
empty
PartFunc of (A
* ), A by
A2,
COMPUT_1: 22;
take f;
thus thesis by
A3,
COMPUT_1:def 21;
end;
end
scheme ::
AOFA_A00:sch2
Sch1 { A() -> non
empty
set , F(
set) ->
Element of A() } :
ex f be 1
-ary
homogeneous
quasi_total non
empty
PartFunc of (A()
* ), A() st for a be
Element of A() holds (f
.
<*a*>)
= F(a);
deffunc
G(
Element of (1
-tuples_on A())) = F(.);
consider f be
Function of (1
-tuples_on A()), A() such that
A1: for a be
Element of (1
-tuples_on A()) holds (f
. a)
=
G(a) from
FUNCT_2:sch 4;
reconsider f as 1
-ary
homogeneous
quasi_total non
empty
PartFunc of (A()
* ), A() by
Th44;
take f;
let a be
Element of A();
reconsider p =
<*a*> as
Element of (1
-tuples_on A()) by
FINSEQ_2: 98;
thus (f
.
<*a*>)
=
G(p) by
A1
.= F(a) by
FINSEQ_1: 40;
end;
scheme ::
AOFA_A00:sch3
Sch2 { A() -> non
empty
set , F(
set,
set) ->
Element of A() } :
ex f be 2
-ary
homogeneous
quasi_total non
empty
PartFunc of (A()
* ), A() st for a,b be
Element of A() holds (f
.
<*a, b*>)
= F(a,b);
deffunc
G(
Element of (2
-tuples_on A())) = F(.,.);
consider f be
Function of (2
-tuples_on A()), A() such that
A1: for a be
Element of (2
-tuples_on A()) holds (f
. a)
=
G(a) from
FUNCT_2:sch 4;
reconsider f as 2
-ary
homogeneous
quasi_total non
empty
PartFunc of (A()
* ), A() by
Th44;
take f;
let a,b be
Element of A();
reconsider p =
<*a, b*> as
Element of (2
-tuples_on A()) by
FINSEQ_2: 101;
thus (f
.
<*a, b*>)
=
G(p) by
A1
.= F(a,.) by
FINSEQ_1: 44
.= F(a,b) by
FINSEQ_1: 44;
end;
theorem ::
AOFA_A00:50
Th45: for S be non
empty non
void
ManySortedSign holds for A be
non-empty
ManySortedSet of the
carrier of S holds for f be
ManySortedFunction of ((A
# )
* the
Arity of S), (A
* the
ResultSort of S) holds for o be
OperSymbol of S holds for d be
Function of (((A
# )
* the
Arity of S)
. o), ((A
* the
ResultSort of S)
. o) holds (f
+* (o,d)) is
ManySortedFunction of ((A
# )
* the
Arity of S), (A
* the
ResultSort of S)
proof
let S be non
empty non
void
ManySortedSign;
let A be
non-empty
ManySortedSet of the
carrier of S;
let f be
ManySortedFunction of ((A
# )
* the
Arity of S), (A
* the
ResultSort of S);
let o be
OperSymbol of S;
let d be
Function of (((A
# )
* the
Arity of S)
. o), ((A
* the
ResultSort of S)
. o);
let x be
object;
assume x
in the
carrier' of S;
then
reconsider x as
OperSymbol of S;
(
dom f)
= the
carrier' of S by
PARTFUN1:def 2;
then (x
= o implies ((f
+* (o,d))
. x)
= d) & (x
<> o implies ((f
+* (o,d))
. x)
= (f
. x)) by
FUNCT_7: 31,
FUNCT_7: 32;
hence thesis;
end;
theorem ::
AOFA_A00:51
Th46: for S be
bool-correct non
empty non
void
BoolSignature holds for A be
non-empty
ManySortedSet of the
carrier of S holds ex B be
non-empty
strict
MSAlgebra over S st the
Sorts of B
= (A
+* (the
bool-sort of S,
BOOLEAN )) & B is
bool-correct
proof
let S be
bool-correct non
empty non
void
BoolSignature;
let A be
non-empty
ManySortedSet of the
carrier of S;
set A1 = (A
+* (the
bool-sort of S,
BOOLEAN ));
set Ch = the
ManySortedFunction of ((A1
# )
* the
Arity of S), (A1
* the
ResultSort of S);
deffunc
F(
Element of
BOOLEAN ,
Element of
BOOLEAN ) = ($1
'&' $2);
consider f be 2
-ary
homogeneous
quasi_total non
empty
PartFunc of (
BOOLEAN
* ),
BOOLEAN such that
A1: for a,b be
Element of
BOOLEAN holds (f
.
<*a, b*>)
=
F(a,b) from
Sch2;
deffunc
F(
Element of
BOOLEAN ) = (
'not' $1);
consider f1 be 1
-ary
homogeneous
quasi_total non
empty
PartFunc of (
BOOLEAN
* ),
BOOLEAN such that
A2: for a be
Element of
BOOLEAN holds (f1
.
<*a*>)
=
F(a) from
Sch1;
A3: (
dom f1)
= ((
arity f1)
-tuples_on
BOOLEAN ) by
COMPUT_1: 22
.= (1
-tuples_on
BOOLEAN ) by
COMPUT_1:def 21;
A4: (
rng f1)
c=
BOOLEAN by
RELAT_1:def 19;
A5: (
dom f)
= ((
arity f)
-tuples_on
BOOLEAN ) by
COMPUT_1: 22
.= (2
-tuples_on
BOOLEAN ) by
COMPUT_1:def 21;
A6: (
rng f)
c=
BOOLEAN by
RELAT_1:def 19;
A7: 3
<= (
len the
connectives of S) by
Def30;
then 1
<= (
len the
connectives of S) & 2
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A8: 1
in (
dom the
connectives of S) & 2
in (
dom the
connectives of S) & 3
in (
dom the
connectives of S) by
A7,
FINSEQ_3: 25;
reconsider o1 = (the
connectives of S
. 2), o2 = (the
connectives of S
. 3), o0 = (the
connectives of S
. 1) as
OperSymbol of S by
A8,
DTCONSTR: 2;
set Ch1 = ((Ch
+* (o1,f1))
+* (o2,f));
set bs = the
bool-sort of S;
A9:
<*bs*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
A10: (
dom A)
= the
carrier of S & (
dom A1)
= the
carrier of S by
PARTFUN1:def 2;
then
A11: (A1
. bs)
=
BOOLEAN by
FUNCT_7: 31;
o1
is_of_type (
<*bs*>,bs) by
Def30;
then
A12: (
the_arity_of o1)
=
<*bs*> & (
the_result_sort_of o1)
= bs;
then
A13: (((A1
# )
* the
Arity of S)
. o1)
= ((A1
# )
.
<*bs*>) by
FUNCT_2: 15
.= (
product (A1
*
<*bs*>)) by
A9,
FINSEQ_2:def 5
.= (
product
<*(A1
. bs)*>) by
A10,
FINSEQ_2: 34
.= (1
-tuples_on
BOOLEAN ) by
A11,
FINSEQ_3: 126;
((A1
* the
ResultSort of S)
. o1)
= (A1
. bs) by
A12,
FUNCT_2: 15;
then f1 is
Function of (((A1
# )
* the
Arity of S)
. o1), ((A1
* the
ResultSort of S)
. o1) by
A13,
A11,
A3,
A4,
FUNCT_2: 2;
then
reconsider Ch2 = (Ch
+* (o1,f1)) as
ManySortedFunction of ((A1
# )
* the
Arity of S), (A1
* the
ResultSort of S) by
Th45;
A14:
<*bs, bs*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
o2
is_of_type (
<*bs, bs*>,bs) by
Def30;
then
A15: (
the_arity_of o2)
=
<*bs, bs*> & (
the_result_sort_of o2)
= bs;
then
A16: (((A1
# )
* the
Arity of S)
. o2)
= ((A1
# )
.
<*bs, bs*>) by
FUNCT_2: 15
.= (
product (A1
*
<*bs, bs*>)) by
A14,
FINSEQ_2:def 5
.= (
product
<*(A1
. bs), (A1
. bs)*>) by
A10,
FINSEQ_2: 125
.= (2
-tuples_on
BOOLEAN ) by
A11,
FINSEQ_3: 128;
((A1
* the
ResultSort of S)
. o2)
= (A1
. bs) by
A15,
FUNCT_2: 15;
then f is
Function of (((A1
# )
* the
Arity of S)
. o2), ((A1
* the
ResultSort of S)
. o2) by
A16,
A11,
A5,
A6,
FUNCT_2: 2;
then
reconsider Ch1 = (Ch2
+* (o2,f)) as
ManySortedFunction of ((A1
# )
* the
Arity of S), (A1
* the
ResultSort of S) by
Th45;
reconsider t =
TRUE as
Element of
BOOLEAN ;
set f0 = ((
0
-tuples_on
BOOLEAN )
--> t);
(
dom f0)
= (
0
-tuples_on
BOOLEAN ) & (
rng f0)
c=
{t} &
{t}
c=
BOOLEAN by
ZFMISC_1: 31;
then
reconsider f0 as
Function of (
0
-tuples_on
BOOLEAN ),
BOOLEAN by
FUNCT_2: 2;
A17: (
<*> the
carrier of S)
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
o0
is_of_type (
{} ,bs) by
Def30;
then
A18: (
the_arity_of o0)
=
{} & (
the_result_sort_of o0)
= bs;
then
A19: (((A1
# )
* the
Arity of S)
. o0)
= ((A1
# )
.
{} ) by
FUNCT_2: 15
.= (
product (A1
*
{} )) by
A17,
FINSEQ_2:def 5
.= (
product (
<*>
BOOLEAN ))
.= (
0
-tuples_on
BOOLEAN ) by
FINSEQ_2: 94,
CARD_3: 10;
((A1
* the
ResultSort of S)
. o0)
= (A1
. bs) by
A18,
FUNCT_2: 15;
then
reconsider Ch3 = (Ch1
+* (o0,f0)) as
ManySortedFunction of ((A1
# )
* the
Arity of S), (A1
* the
ResultSort of S) by
A19,
A11,
Th45;
set B =
MSAlgebra (# A1, Ch3 #);
B is
non-empty;
then
reconsider B as
non-empty
strict
MSAlgebra over S;
take B;
thus the
Sorts of B
= (A
+* (the
bool-sort of S,
BOOLEAN ));
thus (the
Sorts of B
. the
bool-sort of S)
=
BOOLEAN by
A10,
FUNCT_7: 31;
A20: (
len (
the_arity_of o0))
=
0 & (
len (
the_arity_of o1))
= 1 & (
len (
the_arity_of o2))
= 2 by
A12,
A15,
A18,
FINSEQ_1: 40,
FINSEQ_1: 44;
A21: (
dom Ch2)
= the
carrier' of S & (
dom Ch)
= the
carrier' of S & (
dom Ch1)
= the
carrier' of S by
PARTFUN1:def 2;
A22: (Ch3
. o1)
= (Ch1
. o1) by
A12,
A18,
FUNCT_7: 32
.= (Ch2
. o1) by
A20,
FUNCT_7: 32
.= f1 by
A21,
FUNCT_7: 31;
A23: (Ch3
. o0)
= f0 by
A21,
FUNCT_7: 31;
(
In ((the
connectives of S
. 1),the
carrier' of S))
= o0 &
{}
in
{
{} } & (
0
-tuples_on
BOOLEAN )
=
{(
<*>
BOOLEAN )} by
TARSKI:def 1,
FINSEQ_2: 94;
hence ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),B))
.
{} )
=
TRUE by
A23,
FUNCOP_1: 7;
hereby
let x,y be
boolean
object;
A24: x
in
BOOLEAN & y
in
BOOLEAN by
MARGREL1:def 12;
hence ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),B))
.
<*x*>)
= (
'not' x) by
A2,
A22;
(Ch3
. o2)
= (Ch1
. o2) by
A15,
A18,
FUNCT_7: 32
.= f by
A21,
FUNCT_7: 31;
hence ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),B))
.
<*x, y*>)
= (x
'&' y) by
A1,
A24;
end;
end;
registration
let S be
bool-correct non
empty non
void
BoolSignature;
cluster
bool-correct
non-empty for
strict
MSAlgebra over S;
existence
proof
set A = the
non-empty
ManySortedSet of the
carrier of S;
ex B be
non-empty
strict
MSAlgebra over S st the
Sorts of B
= (A
+* (the
bool-sort of S,
BOOLEAN )) & B is
bool-correct by
Th46;
hence thesis;
end;
end
definition
let S be
bool-correct non
empty non
void
BoolSignature;
let B be
non-empty
MSAlgebra over S;
set f = the
bool-sort of S, L = B;
A1: (the
connectives of S
. 1)
is_of_type (
{} ,f) by
Def30;
A2: (the
connectives of S
. 2)
is_of_type (
<*f*>,f) by
Def30;
A3: (the
connectives of S
. 3)
is_of_type (
<*f, f*>,f) 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;
::
AOFA_A00:def32
func
\true B ->
Element of B, the
bool-sort of S equals ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),B))
.
{} );
coherence by
A1,
Th26,
A6;
let p be
Element of B, the
bool-sort of S;
::
AOFA_A00:def33
func
\not p ->
Element of B, the
bool-sort of S equals ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),B))
.
<*p*>);
coherence by
A2,
Th27;
let q be
Element of B, the
bool-sort of S;
::
AOFA_A00:def34
func p
\and q ->
Element of B, the
bool-sort of S equals ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),B))
.
<*p, q*>);
coherence by
A3,
Th28;
end
definition
let S be
bool-correct non
empty non
void
BoolSignature;
let B be
non-empty
MSAlgebra over S;
let p be
Element of B, the
bool-sort of S;
let q be
Element of B, the
bool-sort of S;
::
AOFA_A00:def35
func p
\or q ->
Element of B, the
bool-sort of S equals (
\not ((
\not p)
\and (
\not q)));
coherence ;
::
AOFA_A00:def36
func p
\imp q ->
Element of B, the
bool-sort of S equals (
\not (p
\and (
\not q)));
coherence ;
end
definition
let S be
bool-correct non
empty non
void
BoolSignature;
let B be
non-empty
MSAlgebra over S;
let p be
Element of B, the
bool-sort of S;
let q be
Element of B, the
bool-sort of S;
::
AOFA_A00:def37
func p
\iff q ->
Element of B, the
bool-sort of S equals ((p
\and q)
\or ((
\not p)
\and (
\not q)));
coherence ;
end
begin
definition
let i be
Nat;
let s be
set;
let S be
BoolSignature;
::
AOFA_A00:def38
attr S is i,s
integer means
:
Def38: (
len the
connectives of S)
>= (i
+ 6) & ex I be
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
theorem ::
AOFA_A00:52
Th47: ex S be 10
-connectives non
empty non
void
strict
BoolSignature st S is
1-1-connectives4, 1
integer
bool-correct & the
carrier of S
=
{
0 , 1} & ex I be
SortSymbol of S st I
= 1 & (the
connectives of S
. 4)
is_of_type (
{} ,I)
proof
set X =
{
0 , 1}, Y =
{
0 , 1, 2, 3, 4, 5, 6, 7, 8, 9};
reconsider 00 =
0 , x1 = 1 as
Element of X by
TARSKI:def 2;
reconsider y0 =
0 , 01 = 1, 02 = 2, 03 = 3, 04 = 4, 05 = 5, 06 = 6, 07 = 7, 08 = 8, 09 = 9 as
Element of Y by
ENUMSET1:def 8;
set aa = (
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>);
set a = (aa
+* (
{
0 }
-->
{} ));
set r = ((
{
0 , 1, 2, 9}
--> 00)
\/ (
{3, 4, 5, 6, 7, 8}
--> x1));
<*00*>
in (X
* ) &
<*00, 00*>
in (X
* ) &
<*x1*>
in (X
* ) &
<*x1, x1*>
in (X
* ) & (
<*> X)
in (X
* ) by
FINSEQ_1:def 11;
then
A1:
{
{} ,
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>}
c= (X
* ) & (
rng a)
c= ((
rng aa)
\/ (
rng (
{
0 }
-->
{} ))) & (
dom a)
= ((
dom aa)
\/ (
dom (
{
0 }
-->
{} ))) & (
dom (
{
0 }
-->
{} ))
=
{
0 } & (
rng (
{
0 }
-->
{} ))
=
{
{} } by
Th10,
FUNCT_4: 17,
FUNCT_4:def 1;
then (
rng a)
c= (
{
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>}
\/
{
{} }) by
Th21;
then (
rng a)
c=
{
{} ,
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>} & (
dom aa)
= (
Seg 9) by
Th12,
FINSEQ_1: 89;
then (
rng a)
c= (X
* ) & (
dom a)
= Y by
A1,
Th12,
Th22;
then
reconsider a as
Function of Y, (X
* ) by
FUNCT_2: 2;
A2: (
dom (
{
0 , 1, 2, 9}
--> 00))
=
{
0 , 1, 2, 9} & (
dom (
{3, 4, 5, 6, 7, 8}
--> x1))
=
{3, 4, 5, 6, 7, 8};
{
0 , 1, 2, 9}
misses
{3, 4, 5, 6, 7, 8}
proof
assume
{
0 , 1, 2, 9}
meets
{3, 4, 5, 6, 7, 8};
then
consider x be
object such that
A3: x
in
{
0 , 1, 2, 9} & x
in
{3, 4, 5, 6, 7, 8} by
XBOOLE_0: 3;
(x
=
0 or x
= 1 or x
= 2 or x
= 9) & (x
= 3 or x
= 4 or x
= 5 or x
= 6 or x
= 7 or x
= 8) by
A3,
ENUMSET1:def 2,
ENUMSET1:def 4;
hence thesis;
end;
then
reconsider r as
Function by
A2,
GRFUNC_1: 13;
A4: (
dom r)
= (
{
0 , 1, 2, 9}
\/
{3, 4, 5, 6, 7, 8}) by
A2,
XTUPLE_0: 23
.= ((
{
0 , 1, 2}
\/
{9})
\/
{3, 4, 5, 6, 7, 8}) by
ENUMSET1: 6
.= ((
{
0 , 1, 2}
\/
{3, 4, 5, 6, 7, 8})
\/
{9}) by
XBOOLE_1: 4
.= (
{
0 , 1, 2, 3, 4, 5, 6, 7, 8}
\/
{9}) by
Th13
.= Y by
ENUMSET1: 85;
(
rng r)
= ((
rng (
{
0 , 1, 2, 9}
--> 00))
\/ (
rng (
{3, 4, 5, 6, 7, 8}
--> x1))) by
RELAT_1: 12
.= (
{00}
\/ (
rng (
{3, 4, 5, 6, 7, 8}
--> x1)))
.= (
{00}
\/
{x1})
.= X by
ENUMSET1: 1;
then
reconsider r as
Function of Y, X by
A4,
FUNCT_2: 2;
set B =
BoolSignature (# X, Y, a, r, 00, (
<*y0, 01, 02, 03, 04, 05, 06, 07*>
^
<*08, 09*>) #);
A5: (
len the
connectives of B)
= ((
len
<*y0, 01, 02, 03, 04, 05, 06, 07*>)
+ (
len
<*08, 09*>)) by
FINSEQ_1: 22
.= (8
+ (
len
<*08, 09*>)) by
Th19
.= (8
+ 2) by
FINSEQ_1: 44
.= 10;
B is 10
-connectives non
empty non
void by
A5;
then
reconsider B as 10
-connectives non
empty non
void
strict
BoolSignature;
take B;
thus the
connectives of B is
one-to-one
proof
let x,y be
object;
assume
A6: x
in (
dom the
connectives of B) & y
in (
dom the
connectives of B);
set c = the
connectives of B;
A7: (
dom c)
= (
Seg 10) by
Th25;
A8: y
= 1 or y
= 2 or y
= 3 or y
= 4 or y
= 5 or y
= 6 or y
= 7 or y
= 8 or y
= 9 or y
= 10 by
A6,
A7,
Th23,
ENUMSET1:def 8;
(c
. 1)
= y0 & (c
. 2)
= 01 & (c
. 3)
= 02 & (c
. 4)
= 03 & (c
. 5)
= 04 & (c
. 6)
= 05 & (c
. 7)
= 06 & (c
. 8)
= 07 & (c
. 9)
= 08 & (c
. 10)
= 09 by
Th25;
hence thesis by
A7,
A8,
A6,
Th23,
ENUMSET1:def 8;
end;
thus B is 4, 1
integer
proof
thus (
len the
connectives of B)
>= (4
+ 6) by
A5;
reconsider I = x1 as
Element of B;
take I;
thus I
= 1;
thus I
<> the
bool-sort of B;
A9: (the
connectives of B
. 4)
= 3 & 3
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. 4))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 3) by
FUNCT_4: 11
.=
{} by
Th24;
3
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[3, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[3, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. 4))
= I by
A9,
FUNCT_1: 1;
A10: (the
connectives of B
. 5)
= 4 & 4
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. (4
+ 1)))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 4) by
FUNCT_4: 11
.=
{} by
Th24;
4
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[4, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[4, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. (4
+ 1)))
= I by
A10,
FUNCT_1: 1;
thus (the
connectives of B
. 4)
<> (the
connectives of B
. (4
+ 1)) by
A9,
Th25;
A11: (the
connectives of B
. 6)
= 5 & 5
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. (4
+ 2)))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 5) by
FUNCT_4: 11
.=
<*I*> by
Th24;
5
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[5, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[5, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. (4
+ 2)))
= I by
A11,
FUNCT_1: 1;
A12: (the
connectives of B
. 7)
= 6 & 6
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. (4
+ 3)))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 6) by
FUNCT_4: 11
.=
<*I, I*> by
Th24;
6
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[6, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[6, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. (4
+ 3)))
= I by
A12,
FUNCT_1: 1;
A13: (the
connectives of B
. 8)
= 7 & 7
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. (4
+ 4)))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 7) by
FUNCT_4: 11
.=
<*I, I*> by
Th24;
7
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[7, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[7, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. (4
+ 4)))
= I by
A13,
FUNCT_1: 1;
A14: (the
connectives of B
. 9)
= 8 & 8
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. (4
+ 5)))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 8) by
FUNCT_4: 11
.=
<*I, I*> by
Th24;
8
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[8, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[8, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. (4
+ 5)))
= I by
A14,
FUNCT_1: 1;
thus (the
connectives of B
. (4
+ 3))
<> (the
connectives of B
. (4
+ 4)) by
A13,
Th25;
thus (the
connectives of B
. (4
+ 3))
<> (the
connectives of B
. (4
+ 5)) by
A14,
Th25;
thus (the
connectives of B
. (4
+ 4))
<> (the
connectives of B
. (4
+ 5)) by
A14,
Th25;
A15: (the
connectives of B
. 10)
= 9 & 9
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. (4
+ 6)))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 9) by
FUNCT_4: 11
.=
<*I, I*> by
Th24;
9
in
{
0 , 1, 2, 9} & the
bool-sort of B
in
{the
bool-sort of B} by
TARSKI:def 1,
ENUMSET1:def 2;
then
[9, 00]
in (
{
0 , 1, 2, 9}
--> 00) by
ZFMISC_1: 87;
then
[9, 00]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. (4
+ 6)))
= the
bool-sort of B by
A15,
FUNCT_1: 1;
end;
thus (
len the
connectives of B)
>= 3 by
A5;
A16: (the
connectives of B
. 1)
=
0 &
0
in
{
0 } by
Th25,
TARSKI:def 1;
hence (the
Arity of B
. (the
connectives of B
. 1))
= ((
{
0 }
-->
{} )
.
0 ) by
A1,
FUNCT_4: 13
.=
{} ;
0
in
{
0 , 1, 2, 9} & 00
in
{00} by
TARSKI:def 1,
ENUMSET1:def 2;
then
[
0 , the
bool-sort of B]
in (
{
0 , 1, 2, 9}
--> 00) by
ZFMISC_1: 87;
then
[
0 , the
bool-sort of B]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. 1))
= the
bool-sort of B by
A16,
FUNCT_1: 1;
A17: (the
connectives of B
. 2)
= 1 & 1
nin
{
0 } by
Th25,
TARSKI:def 1;
hence (the
Arity of B
. (the
connectives of B
. 2))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 1) by
A1,
FUNCT_4: 11
.=
<*the
bool-sort of B*> by
Th24;
1
in
{
0 , 1, 2, 9} & 00
in
{00} by
TARSKI:def 1,
ENUMSET1:def 2;
then
[1, the
bool-sort of B]
in (
{
0 , 1, 2, 9}
--> 00) by
ZFMISC_1: 87;
then
[1, the
bool-sort of B]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. 2))
= the
bool-sort of B by
A17,
FUNCT_1: 1;
A18: (the
connectives of B
. 3)
= 2 & 2
nin
{
0 } by
Th25,
TARSKI:def 1;
hence (the
Arity of B
. (the
connectives of B
. 3))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 2) by
A1,
FUNCT_4: 11
.=
<*the
bool-sort of B, the
bool-sort of B*> by
Th24;
2
in
{
0 , 1, 2, 9} & 00
in
{00} by
TARSKI:def 1,
ENUMSET1:def 2;
then
[2, the
bool-sort of B]
in (
{
0 , 1, 2, 9}
--> 00) by
ZFMISC_1: 87;
then
[2, the
bool-sort of B]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. 3))
= the
bool-sort of B by
A18,
FUNCT_1: 1;
thus the
carrier of B
=
{
0 , 1};
reconsider I = 1 as
SortSymbol of B;
take I;
thus I
= 1;
A19: (the
connectives of B
. 4)
= 3 & 3
nin (
dom (
{
0 }
-->
{} )) by
Th25;
hence (the
Arity of B
. (the
connectives of B
. 4))
= ((
<*
<*00*>,
<*00, 00*>,
{} ,
{} ,
<*x1*>,
<*x1, x1*>,
<*x1, x1*>,
<*x1, x1*>*>
^
<*
<*x1, x1*>*>)
. 3) by
FUNCT_4: 11
.=
{} by
Th24;
3
in
{3, 4, 5, 6, 7, 8} & I
in
{I} by
TARSKI:def 1,
ENUMSET1:def 4;
then
[3, I]
in (
{3, 4, 5, 6, 7, 8}
--> x1) by
ZFMISC_1: 87;
then
[3, I]
in r by
XBOOLE_0:def 3;
hence (the
ResultSort of B
. (the
connectives of B
. 4))
= I by
A19,
FUNCT_1: 1;
end;
registration
cluster 10
-connectives
1-1-connectives4, 1
integer
bool-correct non
empty non
void for
strict
BoolSignature;
existence by
Th47;
end
definition
let S be non
empty non
void
BoolSignature;
let I be
SortSymbol of S;
::
AOFA_A00:def39
attr I is
integer means
:
Def39: I
= 1;
end
registration
let S be 4, 1
integer non
empty non
void
BoolSignature;
cluster
integer for
SortSymbol of S;
existence
proof
consider I be
SortSymbol of S such that
A1: I
= 1 and 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
Def38;
take I;
thus I
= 1 by
A1;
end;
end
theorem ::
AOFA_A00:53
Th48: for S be 4, 1
integer non
empty non
void
BoolSignature holds for I be
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)
proof
let S be 4, 1
integer non
empty non
void
BoolSignature;
let I be
integer
SortSymbol of S;
A1: I
= 1 by
Def39;
ex I be
SortSymbol of S st 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
Def38;
hence thesis by
A1;
end;
definition
let S be 4, 1
integer non
empty non
void
BoolSignature;
let A be
non-empty
MSAlgebra over S;
let I be
integer
SortSymbol of S;
set f = the
bool-sort of S, 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;
::
AOFA_A00:def40
func
\0 (A,I) ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 4),the
carrier' of S)),A))
.
{} );
coherence 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;
::
AOFA_A00:def41
func
\1 (A,I) ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 5),the
carrier' of S)),A))
.
{} );
coherence by
Th48,
Th26,
A4;
let a be
Element of (the
Sorts of A
. I);
::
AOFA_A00:def42
func
- a ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 6),the
carrier' of S)),A))
.
<*a*>);
coherence by
A1,
Th27;
let b be
Element of (the
Sorts of A
. I);
::
AOFA_A00:def43
func a
+ b ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 7),the
carrier' of S)),A))
.
<*a, b*>);
coherence by
A1,
Th28;
::
AOFA_A00:def44
func a
* b ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 8),the
carrier' of S)),A))
.
<*a, b*>);
coherence by
A1,
Th28;
::
AOFA_A00:def45
func a
div b ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 9),the
carrier' of S)),A))
.
<*a, b*>);
coherence by
A1,
Th28;
::
AOFA_A00:def46
func
leq (a,b) ->
Element of (the
Sorts of A
. the
bool-sort of S) equals ((
Den ((
In ((the
connectives of S
. 10),the
carrier' of S)),A))
.
<*a, b*>);
coherence by
A1,
Th28;
end
definition
let S be 4, 1
integer non
empty non
void
BoolSignature;
let A be
non-empty
MSAlgebra over S;
let I be
integer
SortSymbol of S;
let a,b be
Element of A, I;
::
AOFA_A00:def47
func a
- b ->
Element of A, I equals (a
+ (
- b));
coherence ;
::
AOFA_A00:def48
func a
mod b ->
Element of A, I equals (a
+ (
- ((a
div b)
* b)));
coherence ;
end
registration
let S be 4, 1
integer non
empty non
void
BoolSignature;
let X be
non-empty
ManySortedSet of the
carrier of S;
cluster (X
. 1) -> non
empty;
coherence
proof
set i = 4;
consider I be
Element of S such that
A1: I
= 1 and 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
. (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
Def38;
thus thesis by
A1;
end;
end
definition
let n be
Nat;
let s be
set;
let S be
bool-correct non
empty non
void
BoolSignature;
let A be
bool-correct
MSAlgebra over S;
::
AOFA_A00:def49
attr A is n,s
integer means
:
Def49: ex I be
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 be
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
theorem ::
AOFA_A00:54
Th49: for n be
Nat, I be
set st n
>= 1 holds for S be
bool-correct non
empty non
void
BoolSignature st S is n, I
integer holds ex A be
bool-correct
non-empty
strict
MSAlgebra over S st A is n, I
integer
proof
let n be
Nat;
let J be
set;
assume
A1: n
>= 1;
let S be
bool-correct non
empty non
void
BoolSignature;
assume
A2: S is n, J
integer;
then
consider I be
Element of S such that
A3: I
= J & I
<> the
bool-sort of S & (the
connectives of S
. n)
is_of_type (
{} ,I) & (the
connectives of S
. (n
+ 1))
is_of_type (
{} ,I) & (the
connectives of S
. n)
<> (the
connectives of S
. (n
+ 1)) & (the
connectives of S
. (n
+ 2))
is_of_type (
<*I*>,I) & (the
connectives of S
. (n
+ 3))
is_of_type (
<*I, I*>,I) & (the
connectives of S
. (n
+ 4))
is_of_type (
<*I, I*>,I) & (the
connectives of S
. (n
+ 5))
is_of_type (
<*I, I*>,I) & (the
connectives of S
. (n
+ 3))
<> (the
connectives of S
. (n
+ 4)) & (the
connectives of S
. (n
+ 3))
<> (the
connectives of S
. (n
+ 5)) & (the
connectives of S
. (n
+ 4))
<> (the
connectives of S
. (n
+ 5)) & (the
connectives of S
. (n
+ 6))
is_of_type (
<*I, I*>,the
bool-sort of S);
set X = the
non-empty
ManySortedSet of the
carrier of S;
set A = (X
+* (I,
INT ));
consider B be
non-empty
strict
MSAlgebra over S such that
A4: the
Sorts of B
= (A
+* (the
bool-sort of S,
BOOLEAN )) & B is
bool-correct by
Th46;
set C = the
Sorts of B;
set Ch = the
Charact of B;
set bs = the
bool-sort of S;
A5: (
len the
connectives of S)
>= (n
+ 6) by
A2;
(n
+ 4)
<= ((n
+ 4)
+ 2) & (n
+ 3)
<= ((n
+ 3)
+ 3) & (n
+ 2)
<= ((n
+ 2)
+ 4) & (n
+ 1)
<= ((n
+ 1)
+ 5) & n
<= (n
+ 6) & 1
<= (1
+ (n
+ 5)) & 2
<= (2
+ (n
+ 4)) & 3
<= (3
+ (n
+ 3)) & 1
<= (1
+ (n
+ 3)) & 1
<= (1
+ (n
+ 2)) & (n
+ 5)
<= ((n
+ 5)
+ 1) & 1
<= (1
+ (n
+ 1)) & 1
<= (n
+ 1) by
NAT_1: 12;
then (n
+ 5)
<= (
len the
connectives of S) & (n
+ 4)
<= (
len the
connectives of S) & (n
+ 3)
<= (
len the
connectives of S) & (n
+ 2)
<= (
len the
connectives of S) & (n
+ 1)
<= (
len the
connectives of S) & 3
<= (
len the
connectives of S) & 1
<= (
len the
connectives of S) & 2
<= (
len the
connectives of S) & n
<= (
len the
connectives of S) by
A5,
XXREAL_0: 2;
then 1
in (
dom the
connectives of S) & 2
in (
dom the
connectives of S) & 3
in (
dom the
connectives of S) & n
in (
dom the
connectives of S) & (n
+ 1)
in (
dom the
connectives of S) & (n
+ 2)
in (
dom the
connectives of S) & (n
+ 3)
in (
dom the
connectives of S) & (n
+ 4)
in (
dom the
connectives of S) & (n
+ 5)
in (
dom the
connectives of S) & (n
+ 6)
in (
dom the
connectives of S) by
A5,
A1,
FINSEQ_3: 25,
NAT_1: 12;
then
reconsider o01 = (the
connectives of S
. 1), o02 = (the
connectives of S
. 2), o03 = (the
connectives of S
. 3), o1 = (the
connectives of S
. n), o2 = (the
connectives of S
. (n
+ 1)), o3 = (the
connectives of S
. (n
+ 2)), o4 = (the
connectives of S
. (n
+ 3)), o5 = (the
connectives of S
. (n
+ 4)), o6 = (the
connectives of S
. (n
+ 5)), o7 = (the
connectives of S
. (n
+ 6)) as
OperSymbol of S by
DTCONSTR: 2;
set g0 = ((
0
-tuples_on
INT )
-->
0 );
set g1 = ((
0
-tuples_on
INT )
--> 1);
A6: (
dom g0)
= (
0
-tuples_on
INT ) & (
dom g1)
= (
0
-tuples_on
INT );
{
0 }
c=
INT &
{1}
c=
INT by
INT_1:def 2;
then (
rng g0)
c=
INT & (
rng g1)
c=
INT ;
then
reconsider g0, g1 as
Function of (
0
-tuples_on
INT ),
INT by
A6,
FUNCT_2: 2;
deffunc
F(
Element of
INT ) = (
In ((
- $1),
INT )) qua
Element of
INT ;
consider f1 be 1
-ary
homogeneous
quasi_total non
empty
PartFunc of (
INT
* ),
INT such that
A7: for a be
Element of
INT holds (f1
.
<*a*>)
=
F(a) from
Sch1;
A8: (
dom f1)
= ((
arity f1)
-tuples_on
INT ) by
COMPUT_1: 22
.= (1
-tuples_on
INT ) by
COMPUT_1:def 21;
A9: (
rng f1)
c=
INT by
RELAT_1:def 19;
A10:
<*I*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
A11: (
dom A)
= the
carrier of S & (
dom X)
= the
carrier of S & (
dom C)
= the
carrier of S by
PARTFUN1:def 2;
A12: (C
. I)
= (A
. I) by
A4,
A3,
FUNCT_7: 32
.=
INT by
A11,
FUNCT_7: 31;
A13: (
the_arity_of o3)
=
<*I*> & (
the_result_sort_of o3)
= I by
A3;
then
A14: (((C
# )
* the
Arity of S)
. o3)
= ((C
# )
.
<*I*>) by
FUNCT_2: 15
.= (
product (C
*
<*I*>)) by
A10,
FINSEQ_2:def 5
.= (
product
<*(C
. I)*>) by
A11,
FINSEQ_2: 34
.= (1
-tuples_on
INT ) by
A12,
FINSEQ_3: 126;
((C
* the
ResultSort of S)
. o3)
= (C
. I) by
A13,
FUNCT_2: 15;
then f1 is
Function of (((C
# )
* the
Arity of S)
. o3), ((C
* the
ResultSort of S)
. o3) by
A14,
A12,
A8,
A9,
FUNCT_2: 2;
then
reconsider Ch1 = (the
Charact of B
+* (o3,f1)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
Th45;
deffunc
F(
Element of
INT ,
Element of
INT ) = (
In (($1
+ $2),
INT ));
consider f2 be 2
-ary
homogeneous
quasi_total non
empty
PartFunc of (
INT
* ),
INT such that
A15: for a,b be
Element of
INT holds (f2
.
<*a, b*>)
=
F(a,b) from
Sch2;
A16: (
dom f2)
= ((
arity f2)
-tuples_on
INT ) by
COMPUT_1: 22
.= (2
-tuples_on
INT ) by
COMPUT_1:def 21;
A17: (
rng f2)
c=
INT by
RELAT_1:def 19;
A18:
<*I, I*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
A19: (
the_arity_of o4)
=
<*I, I*> & (
the_result_sort_of o4)
= I by
A3;
then
A20: (((C
# )
* the
Arity of S)
. o4)
= ((C
# )
.
<*I, I*>) by
FUNCT_2: 15
.= (
product (C
*
<*I, I*>)) by
A18,
FINSEQ_2:def 5
.= (
product
<*(C
. I), (C
. I)*>) by
A11,
FINSEQ_2: 125
.= (2
-tuples_on
INT ) by
A12,
FINSEQ_3: 128;
((C
* the
ResultSort of S)
. o4)
= (C
. I) by
A19,
FUNCT_2: 15;
then f2 is
Function of (((C
# )
* the
Arity of S)
. o4), ((C
* the
ResultSort of S)
. o4) by
A20,
A12,
A16,
A17,
FUNCT_2: 2;
then
reconsider Ch2 = (Ch1
+* (o4,f2)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
Th45;
deffunc
F(
Element of
INT ,
Element of
INT ) = (
In (($1
* $2),
INT ));
consider f3 be 2
-ary
homogeneous
quasi_total non
empty
PartFunc of (
INT
* ),
INT such that
A21: for a,b be
Element of
INT holds (f3
.
<*a, b*>)
=
F(a,b) from
Sch2;
A22: (
dom f3)
= ((
arity f3)
-tuples_on
INT ) by
COMPUT_1: 22
.= (2
-tuples_on
INT ) by
COMPUT_1:def 21;
A23: (
rng f3)
c=
INT by
RELAT_1:def 19;
A24: (
the_arity_of o5)
=
<*I, I*> & (
the_result_sort_of o5)
= I by
A3;
then
A25: (((C
# )
* the
Arity of S)
. o5)
= ((C
# )
.
<*I, I*>) by
FUNCT_2: 15
.= (
product (C
*
<*I, I*>)) by
A18,
FINSEQ_2:def 5
.= (
product
<*(C
. I), (C
. I)*>) by
A11,
FINSEQ_2: 125
.= (2
-tuples_on
INT ) by
A12,
FINSEQ_3: 128;
((C
* the
ResultSort of S)
. o5)
= (C
. I) by
A24,
FUNCT_2: 15;
then f3 is
Function of (((C
# )
* the
Arity of S)
. o5), ((C
* the
ResultSort of S)
. o5) by
A25,
A12,
A22,
A23,
FUNCT_2: 2;
then
reconsider Ch3 = (Ch2
+* (o5,f3)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
Th45;
deffunc
F(
Element of
INT ,
Element of
INT ) = (
In (($1
div $2),
INT ));
consider fa be 2
-ary
homogeneous
quasi_total non
empty
PartFunc of (
INT
* ),
INT such that
A26: for a,b be
Element of
INT holds (fa
.
<*a, b*>)
=
F(a,b) from
Sch2;
A27: (
dom fa)
= ((
arity fa)
-tuples_on
INT ) by
COMPUT_1: 22
.= (2
-tuples_on
INT ) by
COMPUT_1:def 21;
A28: (
rng fa)
c=
INT by
RELAT_1:def 19;
A29: (
the_arity_of o6)
=
<*I, I*> & (
the_result_sort_of o6)
= I by
A3;
then
A30: (((C
# )
* the
Arity of S)
. o6)
= ((C
# )
.
<*I, I*>) by
FUNCT_2: 15
.= (
product (C
*
<*I, I*>)) by
A18,
FINSEQ_2:def 5
.= (
product
<*(C
. I), (C
. I)*>) by
A11,
FINSEQ_2: 125
.= (2
-tuples_on
INT ) by
A12,
FINSEQ_3: 128;
((C
* the
ResultSort of S)
. o6)
= (C
. I) by
A29,
FUNCT_2: 15;
then fa is
Function of (((C
# )
* the
Arity of S)
. o6), ((C
* the
ResultSort of S)
. o6) by
A30,
A12,
A27,
A28,
FUNCT_2: 2;
then
reconsider Ch3a = (Ch3
+* (o6,fa)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
Th45;
deffunc
G(
Element of (2
-tuples_on
INT )) = (
In ((
IFGT (($1
/. 1),($1
/. 2),
FALSE ,
TRUE )),
BOOLEAN ));
consider f4 be
Function of (2
-tuples_on
INT ),
BOOLEAN such that
A31: for p be
Element of (2
-tuples_on
INT ) holds (f4
. p)
=
G(p) from
FUNCT_2:sch 4;
A32: (
the_arity_of o7)
=
<*I, I*> & (
the_result_sort_of o7)
= bs by
A3;
then
A33: (((C
# )
* the
Arity of S)
. o7)
= ((C
# )
.
<*I, I*>) by
FUNCT_2: 15
.= (
product (C
*
<*I, I*>)) by
A18,
FINSEQ_2:def 5
.= (
product
<*(C
. I), (C
. I)*>) by
A11,
FINSEQ_2: 125
.= (2
-tuples_on
INT ) by
A12,
FINSEQ_3: 128;
((C
* the
ResultSort of S)
. o7)
= (C
. bs) by
A32,
FUNCT_2: 15
.=
BOOLEAN by
A4;
then
reconsider Ch4 = (Ch3a
+* (o7,f4)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
A33,
Th45;
A34: (
<*> the
carrier of S)
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
A35: (
the_arity_of o1)
=
{} & (
the_result_sort_of o1)
= I by
A3;
then
A36: (((C
# )
* the
Arity of S)
. o1)
= ((C
# )
.
{} ) by
FUNCT_2: 15
.= (
product (C
* (
<*>
INT ))) by
A34,
FINSEQ_2:def 5
.= (
0
-tuples_on
INT ) by
CARD_3: 10,
FINSEQ_2: 94;
((C
* the
ResultSort of S)
. o1)
=
INT by
A12,
A35,
FUNCT_2: 15;
then
reconsider Ch5 = (Ch4
+* (o1,g0)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
A36,
Th45;
A37: (
the_arity_of o2)
=
{} & (
the_result_sort_of o2)
= I by
A3;
then
A38: (((C
# )
* the
Arity of S)
. o2)
= ((C
# )
.
{} ) by
FUNCT_2: 15
.= (
product (C
* (
<*>
INT ))) by
A34,
FINSEQ_2:def 5
.= (
0
-tuples_on
INT ) by
CARD_3: 10,
FINSEQ_2: 94;
((C
* the
ResultSort of S)
. o2)
=
INT by
A12,
A37,
FUNCT_2: 15;
then
reconsider Ch6 = (Ch5
+* (o2,g1)) as
ManySortedFunction of ((C
# )
* the
Arity of S), (C
* the
ResultSort of S) by
A38,
Th45;
A39: (
dom Ch5)
= the
carrier' of S & (
dom Ch4)
= the
carrier' of S & (
dom Ch3)
= the
carrier' of S & (
dom Ch2)
= the
carrier' of S & (
dom Ch1)
= the
carrier' of S & (
dom Ch)
= the
carrier' of S & (
dom Ch3a)
= the
carrier' of S by
PARTFUN1:def 2;
set D =
MSAlgebra (# C, Ch6 #);
D is
non-empty
bool-correct
proof
thus the
Sorts of D is
non-empty;
thus (the
Sorts of D
. the
bool-sort of S)
=
BOOLEAN by
A4;
o01
is_of_type (
{} ,bs) & o02
is_of_type (
<*bs*>,bs) & o03
is_of_type (
<*bs, bs*>,bs) by
Def30;
then (
the_arity_of o01)
=
{} & (
the_result_sort_of o01)
= bs & (
the_result_sort_of o02)
= bs & (
the_result_sort_of o03)
= bs & (
the_arity_of o02)
=
<*bs*> & (
the_arity_of o03)
=
<*bs, bs*> & (
len
<*bs*>)
= 1 & (
len
<*I, I*>)
= 2 & (
<*I, I*>
. 1)
= I & (
<*bs, bs*>
. 1)
= bs by
FINSEQ_1: 40,
FINSEQ_1: 44;
then
A40: o01
<> o4 & o01
<> o3 & o01
<> o2 & o01
<> o1 & o01
<> o5 & o01
<> o6 & o02
<> o4 & o02
<> o3 & o02
<> o2 & o02
<> o1 & o02
<> o5 & o02
<> o6 & o03
<> o4 & o03
<> o3 & o03
<> o2 & o03
<> o1 & o03
<> o5 & o03
<> o6 & o01
<> o7 & o02
<> o7 & o03
<> o7 by
A3;
A41: (Ch6
. o01)
= (Ch5
. o01) by
A40,
FUNCT_7: 32
.= (Ch4
. o01) by
A40,
FUNCT_7: 32
.= (Ch3a
. o01) by
A40,
FUNCT_7: 32
.= (Ch3
. o01) by
A40,
FUNCT_7: 32
.= (Ch2
. o01) by
A40,
FUNCT_7: 32
.= (Ch1
. o01) by
A40,
FUNCT_7: 32
.= (Ch
. o01) by
A40,
FUNCT_7: 32;
thus ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),D))
.
{} )
= ((
Den (o01,B))
.
{} ) by
A41
.= ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),B))
.
{} )
.=
TRUE by
A4;
let x,y be
boolean
object;
A42: (Ch6
. o02)
= (Ch5
. o02) by
A40,
FUNCT_7: 32
.= (Ch4
. o02) by
A40,
FUNCT_7: 32
.= (Ch3a
. o02) by
A40,
FUNCT_7: 32
.= (Ch3
. o02) by
A40,
FUNCT_7: 32
.= (Ch2
. o02) by
A40,
FUNCT_7: 32
.= (Ch1
. o02) by
A40,
FUNCT_7: 32
.= (Ch
. o02) by
A40,
FUNCT_7: 32;
thus ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),D))
.
<*x*>)
= ((
Den (o02,B))
.
<*x*>) by
A42
.= (
'not' x) by
A4;
A44: (Ch6
. o03)
= (Ch5
. o03) by
A40,
FUNCT_7: 32
.= (Ch4
. o03) by
A40,
FUNCT_7: 32
.= (Ch3a
. o03) by
A40,
FUNCT_7: 32
.= (Ch3
. o03) by
A40,
FUNCT_7: 32
.= (Ch2
. o03) by
A40,
FUNCT_7: 32
.= (Ch1
. o03) by
A40,
FUNCT_7: 32
.= (Ch
. o03) by
A40,
FUNCT_7: 32;
thus ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),D))
.
<*x, y*>)
= ((
Den (o03,B))
.
<*x, y*>) by
A44
.= (x
'&' y) by
A4;
end;
then
reconsider D as
bool-correct
non-empty
strict
MSAlgebra over S;
take D, I;
thus I
= J by
A3;
thus (the
connectives of S
. n)
is_of_type (
{} ,I) by
A3;
thus (the
Sorts of D
. I)
= (A
. I) by
A3,
A4,
FUNCT_7: 32
.=
INT by
A11,
FUNCT_7: 31;
A46:
{}
in
{
{} } & (
0
-tuples_on
INT )
=
{(
<*>
INT )} by
TARSKI:def 1,
FINSEQ_2: 94;
(Ch6
. o1)
= (Ch5
. o1) by
A3,
FUNCT_7: 32
.= g0 by
A39,
FUNCT_7: 31;
hence ((
Den ((
In ((the
connectives of S
. n),the
carrier' of S)),D))
.
{} )
=
0 ;
(Ch6
. o2)
= g1 by
A39,
FUNCT_7: 31;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 1)),the
carrier' of S)),D))
.
{} )
= 1 by
A46,
FUNCOP_1: 7;
let i,j be
Integer;
(
len
<*I*>)
= 1 & (
len
<*I, I*>)
= 2 by
FINSEQ_1: 40,
FINSEQ_1: 44;
then
A48: o3
<> o4 & o3
<> o5 & o3
<> o6 & o3
<> o1 & o3
<> o2 & o3
<> o7 by
A3;
A49: (Ch6
. o3)
= (Ch5
. o3) by
A13,
A37,
FUNCT_7: 32
.= (Ch4
. o3) by
A13,
A35,
FUNCT_7: 32
.= (Ch3a
. o3) by
A48,
FUNCT_7: 32
.= (Ch3
. o3) by
A48,
FUNCT_7: 32
.= (Ch2
. o3) by
A48,
FUNCT_7: 32
.= (Ch1
. o3) by
A48,
FUNCT_7: 32
.= f1 by
A39,
FUNCT_7: 31;
(
In (o3,the
carrier' of S))
= o3 & i
in
INT & (
- i)
in
INT by
INT_1:def 2;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 2)),the
carrier' of S)),D))
.
<*i*>)
= (
In ((
- i),
INT )) by
A7,
A49
.= (
- i);
A50: (Ch6
. o4)
= (Ch5
. o4) by
A19,
A37,
FUNCT_7: 32
.= (Ch4
. o4) by
A19,
A35,
FUNCT_7: 32
.= (Ch3a
. o4) by
A3,
FUNCT_7: 32
.= (Ch3
. o4) by
A3,
FUNCT_7: 32
.= (Ch2
. o4) by
A3,
FUNCT_7: 32
.= f2 by
A39,
FUNCT_7: 31;
(
In (o4,the
carrier' of S))
= o4 & i
in
INT & j
in
INT & (i
+ j)
in
INT by
INT_1:def 2;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 3)),the
carrier' of S)),D))
.
<*i, j*>)
= (
In ((i
+ j),
INT )) by
A15,
A50
.= (i
+ j);
A51: o5
<> o6 & o5
<> o1 & o5
<> o2 & o5
<> o7 by
A3;
A52: (Ch6
. o5)
= (Ch5
. o5) by
A51,
FUNCT_7: 32
.= (Ch4
. o5) by
A51,
FUNCT_7: 32
.= (Ch3a
. o5) by
A51,
FUNCT_7: 32
.= (Ch3
. o5) by
A3,
FUNCT_7: 32
.= f3 by
A39,
FUNCT_7: 31;
A53: (
In (o5,the
carrier' of S))
= o5 & i
in
INT & j
in
INT & (i
* j)
in
INT by
INT_1:def 2;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 4)),the
carrier' of S)),D))
.
<*i, j*>)
= (
In ((i
* j),
INT )) by
A21,
A52
.= (i
* j);
hereby
assume j
<>
0 ;
A54: o6
<> o1 & o6
<> o2 & o6
<> o7 by
A3;
A55: (Ch6
. o6)
= (Ch5
. o6) by
A54,
FUNCT_7: 32
.= (Ch4
. o6) by
A54,
FUNCT_7: 32
.= (Ch3a
. o6) by
A54,
FUNCT_7: 32
.= fa by
A39,
FUNCT_7: 31;
(
In (o6,the
carrier' of S))
= o6 & i
in
INT & j
in
INT & (i
div j)
in
INT by
INT_1:def 2;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 5)),the
carrier' of S)),D))
.
<*i, j*>)
= (
In ((i
div j),
INT )) by
A26,
A55
.= (i
div j);
end;
A56: (Ch6
. o7)
= (Ch5
. o7) by
A32,
A37,
FUNCT_7: 32
.= (Ch4
. o7) by
A32,
A35,
FUNCT_7: 32
.= f4 by
A39,
FUNCT_7: 31;
reconsider p =
<*i, j*> as
Element of (2
-tuples_on
INT ) by
A53,
FINSEQ_2: 101;
(
dom
<*i, j*>)
= (
Seg 2) by
FINSEQ_1: 89;
then 1
in (
dom
<*i, j*>) & 2
in (
dom
<*i, j*>);
then
A57: (p
/. 1)
= (p
. 1) & (p
/. 2)
= (p
. 2) & (p
. 1)
= i & (p
. 2)
= j by
FINSEQ_1: 44,
PARTFUN1:def 6;
A58: (
In (o7,the
carrier' of S))
= o7 & i
in
INT & j
in
INT & (i
> j implies (
IFGT (i,j,
FALSE ,
TRUE ))
=
FALSE ) & (i
<= j implies (
IFGT (i,j,
FALSE ,
TRUE ))
=
TRUE ) &
FALSE
in
BOOLEAN &
TRUE
in
BOOLEAN by
INT_1:def 2,
XXREAL_0:def 11;
thus ((
Den ((
In ((the
connectives of S
. (n
+ 6)),the
carrier' of S)),D))
.
<*i, j*>)
=
G(p) by
A56,
A31
.= (
IFGT (i,j,
FALSE ,
TRUE )) by
A58,
A57;
end;
registration
let S be 4, 1
integer
bool-correct non
empty non
void
BoolSignature;
cluster 4, 1
integer for
bool-correct
non-empty
strict
MSAlgebra over S;
existence by
Th49;
end
theorem ::
AOFA_A00:55
for S be 4, 1
integer
bool-correct non
empty non
void
BoolSignature holds for A be 4, 1
integer
bool-correct
non-empty
MSAlgebra over S holds for I be
integer
SortSymbol of S holds (the
Sorts of A
. I)
=
INT & (
\0 (A,I))
=
0 & (
\1 (A,I))
= 1 & for i,j be
Integer, a,b be
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 iff i
<= j) & ((
leq (a,b))
=
FALSE iff i
> j)
proof
let S be 4, 1
integer
bool-correct non
empty non
void
BoolSignature;
let A be 4, 1
integer
bool-correct
non-empty
MSAlgebra over S;
let I be
integer
SortSymbol of S;
set n = 4;
consider J be
SortSymbol of S such that
A1: J
= 1 & (the
connectives of S
. n)
is_of_type (
{} ,J) & (the
Sorts of A
. J)
=
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 be
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 )) by
Def49;
thus (the
Sorts of A
. I)
=
INT by
A1,
Def39;
thus (
\0 (A,I))
=
0 by
A1;
thus (
\1 (A,I))
= 1 by
A1;
let i,j be
Integer;
let a,b be
Element of (the
Sorts of A
. I);
assume
A2: a
= i;
assume
A3: b
= j;
thus (
- a)
= (
- i) by
A1,
A2;
thus (a
+ b)
= (i
+ j) by
A1,
A2,
A3;
thus (a
* b)
= (i
* j) by
A1,
A2,
A3;
thus j
<>
0 implies (a
div b)
= (i
div j) by
A1,
A2,
A3;
thus
A4: (
leq (a,b))
= (
IFGT (i,j,
FALSE ,
TRUE )) by
A1,
A2,
A3;
thus ((
leq (a,b))
=
TRUE iff i
<= j) by
A4,
XXREAL_0:def 11;
thus (
leq (a,b))
=
FALSE implies i
> j by
A4,
XXREAL_0:def 11;
assume i
> j;
hence (
leq (a,b))
=
FALSE by
A4,
XXREAL_0:def 11;
end;
registration
let S be 4, 1
integer
bool-correct non
empty non
void
BoolSignature;
let A be 4, 1
integer
bool-correct
non-empty
MSAlgebra over S;
cluster ->
integer for
Element of (the
Sorts of A
. 1);
coherence
proof
set n = 4;
consider I be
SortSymbol of S such that
A1: I
= 1 & (the
connectives of S
. n)
is_of_type (
{} ,I) & (the
Sorts of A
. I)
=
INT and ((
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 be
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 )) by
Def49;
thus thesis by
A1;
end;
end
begin
definition
let I,N be
set;
let n be
Nat;
let S be
ConnectivesSignature;
::
AOFA_A00:def50
attr S is n,I,N
-array means
:
Def50: (
len the
connectives of S)
>= (n
+ 3) & ex J,K,L be
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
definition
let S be non
empty non
void
ConnectivesSignature;
let I,N be
set;
let n be
Nat;
let A be
MSAlgebra over S;
::
AOFA_A00:def51
attr A is n,I,N
-array means ex J,K be
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 be
0
-based
finite
array of (the
Sorts of A
. K) holds (for i be
Integer st i
in (
dom a) holds ((
Den ((the
connectives of S
/. n),A))
.
<*a, i*>)
= (a
. i) & for x be
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 be
Integer, x be
Element of A, K st i
>=
0 holds ((
Den ((the
connectives of S
/. (n
+ 3)),A))
.
<*i, x*>)
= ((
Segm i)
--> x);
end
definition
let B be non
empty
BoolSignature;
let C be non
empty
ConnectivesSignature;
::
AOFA_A00:def52
func B
+* C ->
strict
BoolSignature means
:
Def52: the ManySortedSign of it
= (B
+* C) & the
bool-sort of it
= the
bool-sort of B & the
connectives of it
= (the
connectives of B
^ the
connectives of C);
uniqueness ;
existence
proof
the
carrier of (B
+* C)
= (the
carrier of B
\/ the
carrier of C) by
CIRCCOMB:def 2;
then
reconsider b = the
bool-sort of B as
SortSymbol of (B
+* C) by
XBOOLE_0:def 3;
A1: the
carrier' of (B
+* C)
= (the
carrier' of B
\/ the
carrier' of C) by
CIRCCOMB:def 2;
(
rng the
connectives of B)
c= the
carrier' of B & (
rng the
connectives of C)
c= the
carrier' of C by
RELAT_1:def 19;
then ((
rng the
connectives of B)
\/ (
rng the
connectives of C))
c= the
carrier' of (B
+* C) by
A1,
XBOOLE_1: 13;
then (
rng (the
connectives of B
^ the
connectives of C))
c= the
carrier' of (B
+* C) by
FINSEQ_1: 31;
then
reconsider c = (the
connectives of B
^ the
connectives of C) as
FinSequence of the
carrier' of (B
+* C) by
FINSEQ_1:def 4;
take
BoolSignature (# the
carrier of (B
+* C), the
carrier' of (B
+* C), the
Arity of (B
+* C), the
ResultSort of (B
+* C), b, c #);
thus thesis;
end;
end
theorem ::
AOFA_A00:56
Th51: for B be non
empty
BoolSignature holds for C be non
empty
ConnectivesSignature holds the
carrier of (B
+* C)
= (the
carrier of B
\/ the
carrier of C) & the
carrier' of (B
+* C)
= (the
carrier' of B
\/ the
carrier' of C) & the
Arity of (B
+* C)
= (the
Arity of B
+* the
Arity of C) & the
ResultSort of (B
+* C)
= (the
ResultSort of B
+* the
ResultSort of C)
proof
let B be non
empty
BoolSignature;
let C be non
empty
ConnectivesSignature;
the ManySortedSign of (B
+* C)
= (B qua non
empty
ManySortedSign
+* C) by
Def52;
hence thesis by
CIRCCOMB:def 2;
end;
registration
let B be non
empty
BoolSignature;
let C be non
empty
ConnectivesSignature;
cluster (B
+* C) -> non
empty;
coherence
proof
the
carrier of (B
+* C)
= (the
carrier of B
\/ the
carrier of C) by
Th51;
hence the
carrier of (B
+* C) is non
empty;
end;
end
registration
let B be non
void non
empty
BoolSignature;
let C be non
empty
ConnectivesSignature;
cluster (B
+* C) -> non
void;
coherence
proof
the
carrier' of (B
+* C)
= (the
carrier' of B
\/ the
carrier' of C) by
Th51;
hence the
carrier' of (B
+* C) is non
empty;
end;
end
registration
let n1,n2 be
Nat;
let B be n1
-connectives non
empty non
void
BoolSignature;
let C be n2
-connectives non
empty non
void
ConnectivesSignature;
cluster (B
+* C) -> (n1
+ n2)
-connectives;
coherence
proof
thus (
len the
connectives of (B
+* C))
= (
len (the
connectives of B
^ the
connectives of C)) by
Def52
.= ((
len the
connectives of B)
+ (
len the
connectives of C)) by
FINSEQ_1: 22
.= (n1
+ (
len the
connectives of C)) by
Def29
.= (n1
+ n2) by
Def29;
end;
end
theorem ::
AOFA_A00:57
Th52: for M,O,N,I be
set st I
in M & N
in M holds ex C be 4
-connectives non
empty non
void
strict
ConnectivesSignature st C is 1, I, N
-array
1-1-connectives & M
c= the
carrier of C & O
misses the
carrier' of C & (the
ResultSort of C
. (the
connectives of C
. 2))
nin M
proof
let M,O,N,I be
set;
assume
A1: I
in M & N
in M;
set X = (
succ M);
set Y =
{O, (
succ O), (
succ (
succ O)), (
succ (
succ (
succ O)))};
reconsider o0 = O, o1 = (
succ O), o2 = (
succ (
succ O)), o3 = (
succ (
succ (
succ O))) as
Element of Y by
ENUMSET1:def 2;
reconsider m = M, i = I, n = N as
Element of X by
A1,
XBOOLE_0:def 3,
ORDINAL1: 6;
set A = ((o0,o1,o2,o3)
--> (
<*m, n*>,
<*m, n, i*>,
<*m*>,
<*n, i*>));
A3: o0
in o1 & o1
in o2 & o2
in o3 by
ORDINAL1: 6;
then
A4: (o0,o1,o2,o3)
are_mutually_distinct by
XREGULAR: 7;
then (
rng A)
=
{
<*m, n*>,
<*m, n, i*>,
<*m*>,
<*n, i*>} &
<*m, n*>
in (X
* ) &
<*m, n, i*>
in (X
* ) &
<*m*>
in (X
* ) &
<*n, i*>
in (X
* ) by
FUNCT_4: 143,
FINSEQ_1:def 11;
then (
dom A)
= Y & (
rng A)
c= (X
* ) by
FUNCT_4: 137,
QUATERNI: 5;
then
reconsider A as
Function of Y, (X
* ) by
FUNCT_2: 2;
set R = ((o0,o1,o2,o3)
--> (i,m,n,m));
(
rng R)
=
{i, m, n, m} by
A4,
FUNCT_4: 143;
then (
dom R)
= Y & (
rng R)
c= X by
FUNCT_4: 137,
QUATERNI: 5;
then
reconsider R as
Function of Y, X by
FUNCT_2: 2;
set c =
<*o0, o1, o2, o3*>;
set C =
ConnectivesSignature (# X, Y, A, R, c #);
C is 4
-connectives by
CARD_1:def 7;
then
reconsider C as 4
-connectives non
empty non
void
strict
ConnectivesSignature;
take C;
thus C is 1, I, N
-array
proof
thus (
len the
connectives of C)
>= (1
+ 3) by
CARD_1:def 7;
reconsider K = n, L = i, J = m as
Element of C;
take J, K, L;
thus L
= I & K
= N;
thus J
<> L & J
<> K by
A1;
(c
. 1)
= o0 & o0
<> o1 & o0
<> o2 & o0
<> o3 by
A3,
FINSEQ_4: 76,
XREGULAR: 7;
hence (the
Arity of C
. (the
connectives of C
. 1))
=
<*J, K*> & (the
ResultSort of C
. (the
connectives of C
. 1))
= L by
FUNCT_4: 142;
(c
. 2)
= o1 & o2
<> o1 & o1
<> o3 by
A3,
FINSEQ_4: 76;
hence (the
Arity of C
. (the
connectives of C
. (1
+ 1)))
=
<*J, K, L*> & (the
ResultSort of C
. (the
connectives of C
. (1
+ 1)))
= J by
FUNCT_4: 141;
(c
. 3)
= o2 & o2
<> o3 by
A3,
FINSEQ_4: 76;
hence (the
Arity of C
. (the
connectives of C
. (1
+ 2)))
=
<*J*> & (the
ResultSort of C
. (the
connectives of C
. (1
+ 2)))
= K by
FUNCT_4: 140;
(c
. 4)
= o3 by
FINSEQ_4: 76;
hence (the
Arity of C
. (the
connectives of C
. (1
+ 3)))
=
<*K, L*> & (the
ResultSort of C
. (the
connectives of C
. (1
+ 3)))
= J by
FUNCT_4: 139;
end;
thus the
connectives of C is
one-to-one by
A4,
Th14;
thus M
c= the
carrier of C by
XBOOLE_1: 7;
now
given x be
object such that
A5: x
in O & x
in the
carrier' of C;
x
= o0 or x
= o1 or x
= o2 or x
= o3 by
A5,
ENUMSET1:def 2;
hence contradiction by
A5,
A3,
XREGULAR: 7,
XREGULAR: 8;
end;
hence O
misses the
carrier' of C by
XBOOLE_0: 3;
(c
. 2)
= o1 & o2
<> o1 & o1
<> o3 by
A3,
FINSEQ_4: 76;
then
A: (the
ResultSort of C
. (the
connectives of C
. (1
+ 1)))
= m by
FUNCT_4: 141;
reconsider nn = (the
ResultSort of C
. (the
connectives of C
. 2)) as
set;
not nn
in nn;
hence thesis by
A;
end;
registration
let I,N be
set;
cluster 1, I, N
-array4
-connectives for non
empty non
void
strict
ConnectivesSignature;
existence
proof
I
in
{I, N} & N
in
{I, N} by
TARSKI:def 2;
then ex C be 4
-connectives non
empty non
void
strict
ConnectivesSignature st C is 1, I, N
-array
1-1-connectives &
{I, N}
c= the
carrier of C &
{}
misses the
carrier' of C & (the
ResultSort of C
. (the
connectives of C
. 2))
nin
{I, N} by
Th52;
hence thesis;
end;
end
theorem ::
AOFA_A00:58
Th53: for n,m be
Nat st m
>
0 holds for B be n
-connectives non
empty non
void
BoolSignature holds for I,N be
set holds for C be non
empty non
void
ConnectivesSignature st C is m, I, N
-array holds (B
+* C) is (n
+ m), I, N
-array
proof
let n,m be
Nat such that
A1: m
>
0 ;
let B be n
-connectives non
empty non
void
BoolSignature;
let I,N be
set;
let C be non
empty non
void
ConnectivesSignature;
assume
A2: (
len the
connectives of C)
>= (m
+ 3);
given J,K,L be
Element of C such that
A3: L
= I & K
= N & J
<> L & J
<> K & (the
connectives of C
. m)
is_of_type (
<*J, K*>,L) & (the
connectives of C
. (m
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of C
. (m
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of C
. (m
+ 3))
is_of_type (
<*K, L*>,J);
set S = (B
+* C);
A4: (
len the
connectives of B)
= n by
Def29;
A5: the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
Def52;
then
A6: (
len the
connectives of S)
= (n
+ (
len the
connectives of C)) by
A4,
FINSEQ_1: 22;
(n
+ (m
+ 3))
= ((n
+ m)
+ 3);
hence (
len the
connectives of S)
>= ((n
+ m)
+ 3) by
A2,
A6,
XREAL_1: 6;
the
carrier of S
= (the
carrier of B
\/ the
carrier of C) by
Th51;
then
reconsider J0 = J, K0 = K, L0 = L as
Element of S by
XBOOLE_0:def 3;
take J0, K0, L0;
thus L0
= I & K0
= N & J0
<> L0 & J0
<> K0 by
A3;
(m
+
0 )
<= (m
+ 3) by
XREAL_1: 6;
then (
0
+ 1)
<= m & m
<= (
len the
connectives of C) by
A1,
A2,
XXREAL_0: 2,
NAT_1: 13;
then
A7: m
in (
dom the
connectives of C) by
FINSEQ_3: 25;
A8: (
dom the
Arity of C)
= the
carrier' of C by
FUNCT_2:def 1;
A9: the
Arity of S
= (the
Arity of B
+* the
Arity of C) by
Th51;
then
A10: (the
Arity of S
. (the
connectives of C
. m))
= (the
Arity of C
. (the
connectives of C
. m)) by
A7,
A8,
FUNCT_1: 102,
FUNCT_4: 13;
A11: (the
connectives of S
. (n
+ m))
= (the
connectives of C
. m) by
A4,
A5,
A7,
FINSEQ_1:def 7;
hence (the
Arity of S
. (the
connectives of S
. (n
+ m)))
=
<*J0, K0*> by
A3,
A10;
A12: (
dom the
ResultSort of C)
= the
carrier' of C by
FUNCT_2:def 1;
A13: the
ResultSort of S
= (the
ResultSort of B
+* the
ResultSort of C) by
Th51;
then (the
ResultSort of S
. (the
connectives of C
. m))
= (the
ResultSort of C
. (the
connectives of C
. m)) by
A7,
A12,
FUNCT_1: 102,
FUNCT_4: 13;
hence (the
ResultSort of S
. (the
connectives of S
. (n
+ m)))
= L0 by
A3,
A11;
(m
+ 1)
<= (m
+ 3) by
XREAL_1: 6;
then 1
<= (m
+ 1) & (m
+ 1)
<= (
len the
connectives of C) by
A2,
XXREAL_0: 2,
NAT_1: 11;
then
A14: (m
+ 1)
in (
dom the
connectives of C) by
FINSEQ_3: 25;
A15: (the
Arity of S
. (the
connectives of C
. (m
+ 1)))
= (the
Arity of C
. (the
connectives of C
. (m
+ 1))) by
A14,
A8,
A9,
FUNCT_1: 102,
FUNCT_4: 13;
((n
+ m)
+ 1)
= (n
+ (m
+ 1));
then
A16: (the
connectives of S
. ((n
+ m)
+ 1))
= (the
connectives of C
. (m
+ 1)) by
A4,
A5,
A14,
FINSEQ_1:def 7;
hence (the
Arity of S
. (the
connectives of S
. ((n
+ m)
+ 1)))
=
<*J0, K0, L0*> by
A3,
A15;
(the
ResultSort of S
. (the
connectives of C
. (m
+ 1)))
= (the
ResultSort of C
. (the
connectives of C
. (m
+ 1))) by
A14,
A12,
A13,
FUNCT_1: 102,
FUNCT_4: 13;
hence (the
ResultSort of S
. (the
connectives of S
. ((n
+ m)
+ 1)))
= J0 by
A3,
A16;
(m
+ 2)
<= ((m
+ 2)
+ 1) by
NAT_1: 11;
then (m
+ 2)
<= (
len the
connectives of C) by
A2,
XXREAL_0: 2;
then
A17: (m
+ 2)
in (
dom the
connectives of C) by
NAT_1: 12,
FINSEQ_3: 25;
A18: (the
Arity of S
. (the
connectives of C
. (m
+ 2)))
= (the
Arity of C
. (the
connectives of C
. (m
+ 2))) by
A17,
A8,
A9,
FUNCT_1: 102,
FUNCT_4: 13;
((n
+ m)
+ 2)
= (n
+ (m
+ 2));
then
A19: (the
connectives of S
. ((n
+ m)
+ 2))
= (the
connectives of C
. (m
+ 2)) by
A4,
A5,
A17,
FINSEQ_1:def 7;
hence (the
Arity of S
. (the
connectives of S
. ((n
+ m)
+ 2)))
=
<*J0*> by
A3,
A18;
(the
ResultSort of S
. (the
connectives of C
. (m
+ 2)))
= (the
ResultSort of C
. (the
connectives of C
. (m
+ 2))) by
A17,
A12,
A13,
FUNCT_1: 102,
FUNCT_4: 13;
hence (the
ResultSort of S
. (the
connectives of S
. ((n
+ m)
+ 2)))
= K0 by
A3,
A19;
A20: (m
+ 3)
in (
dom the
connectives of C) by
A2,
NAT_1: 12,
FINSEQ_3: 25;
A21: (the
Arity of S
. (the
connectives of C
. (m
+ 3)))
= (the
Arity of C
. (the
connectives of C
. (m
+ 3))) by
A20,
A8,
A9,
FUNCT_1: 102,
FUNCT_4: 13;
((n
+ m)
+ 3)
= (n
+ (m
+ 3));
then
A22: (the
connectives of S
. ((n
+ m)
+ 3))
= (the
connectives of C
. (m
+ 3)) by
A4,
A5,
A20,
FINSEQ_1:def 7;
hence (the
Arity of S
. (the
connectives of S
. ((n
+ m)
+ 3)))
=
<*K0, L0*> by
A3,
A21;
(the
ResultSort of S
. (the
connectives of C
. (m
+ 3)))
= (the
ResultSort of C
. (the
connectives of C
. (m
+ 3))) by
A20,
A12,
A13,
FUNCT_1: 102,
FUNCT_4: 13;
hence (the
ResultSort of S
. (the
connectives of S
. ((n
+ m)
+ 3)))
= J0 by
A3,
A22;
end;
theorem ::
AOFA_A00:59
Th54: for m be
Nat st m
>
0 holds for s be
set holds for B be non
empty non
void
BoolSignature holds for C be non
empty non
void
ConnectivesSignature st B is m, s
integer & the
carrier' of B
misses the
carrier' of C holds (B
+* C) is m, s
integer
proof
let m be
Nat;
assume
A1: m
>
0 ;
let s be
set;
let B be non
empty non
void
BoolSignature;
let C be non
empty non
void
ConnectivesSignature;
assume
A2: (
len the
connectives of B)
>= (m
+ 6);
given I be
Element of B such that
A3: I
= s & I
<> the
bool-sort of B & (the
connectives of B
. m)
is_of_type (
{} ,I) & (the
connectives of B
. (m
+ 1))
is_of_type (
{} ,I) & (the
connectives of B
. m)
<> (the
connectives of B
. (m
+ 1)) & (the
connectives of B
. (m
+ 2))
is_of_type (
<*I*>,I) & (the
connectives of B
. (m
+ 3))
is_of_type (
<*I, I*>,I) & (the
connectives of B
. (m
+ 4))
is_of_type (
<*I, I*>,I) & (the
connectives of B
. (m
+ 5))
is_of_type (
<*I, I*>,I) & (the
connectives of B
. (m
+ 3))
<> (the
connectives of B
. (m
+ 4)) & (the
connectives of B
. (m
+ 3))
<> (the
connectives of B
. (m
+ 5)) & (the
connectives of B
. (m
+ 4))
<> (the
connectives of B
. (m
+ 5)) & (the
connectives of B
. (m
+ 6))
is_of_type (
<*I, I*>,the
bool-sort of B);
assume
A4: the
carrier' of B
misses the
carrier' of C;
set S = (B
+* C);
A5: the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
Def52;
then (
len the
connectives of S)
= ((
len the
connectives of B)
+ (
len the
connectives of C)) by
FINSEQ_1: 22;
hence (
len the
connectives of S)
>= (m
+ 6) by
A2,
NAT_1: 12;
the
carrier of S
= (the
carrier of B
\/ the
carrier of C) by
Th51;
then
reconsider I as
Element of S by
XBOOLE_0:def 3;
take I;
thus I
= s by
A3;
thus I
<> the
bool-sort of S by
A3,
Def52;
A6:
now
let i be
Nat;
assume 1
<= i & i
<= (
len the
connectives of B);
then
A7: i
in (
dom the
connectives of B) by
FINSEQ_3: 25;
then (the
connectives of B
. i)
in the
carrier' of B by
FUNCT_1: 102;
then
A8: (the
connectives of B
. i)
nin the
carrier' of C by
A4,
XBOOLE_0: 3;
A9: (
dom the
Arity of C)
= the
carrier' of C & (
dom the
ResultSort of C)
= the
carrier' of C by
FUNCT_2:def 1;
the
Arity of S
= (the
Arity of B
+* the
Arity of C) & the
ResultSort of S
= (the
ResultSort of B
+* the
ResultSort of C) by
Th51;
then
A10: (the
Arity of S
. (the
connectives of B
. i))
= (the
Arity of B
. (the
connectives of B
. i)) & (the
ResultSort of S
. (the
connectives of B
. i))
= (the
ResultSort of B
. (the
connectives of B
. i)) by
A8,
A9,
FUNCT_4: 11;
thus
A11: (the
connectives of S
. i)
= (the
connectives of B
. i) by
A5,
A7,
FINSEQ_1:def 7;
let x;
let I be
Element of B;
let J be
Element of S;
assume
A12: I
= J & (the
connectives of B
. i)
is_of_type (x,I);
thus (the
connectives of S
. i)
is_of_type (x,J) by
A10,
A12,
A11;
end;
(m
+
0 )
<= (m
+ 6) by
XREAL_1: 6;
then
A13: (
0
+ 1)
<= m & m
<= (
len the
connectives of B) by
A1,
A2,
XXREAL_0: 2,
NAT_1: 13;
hence (the
connectives of S
. m)
is_of_type (
{} ,I) by
A6,
A3;
(m
+ 1)
<= (m
+ 6) by
XREAL_1: 6;
then
A14: (
0
+ 1)
<= (m
+ 1) & (m
+ 1)
<= (
len the
connectives of B) by
A2,
XXREAL_0: 2,
NAT_1: 11;
hence (the
connectives of S
. (m
+ 1))
is_of_type (
{} ,I) by
A6,
A3;
(the
connectives of S
. m)
= (the
connectives of B
. m) & (the
connectives of S
. (m
+ 1))
= (the
connectives of B
. (m
+ 1)) by
A13,
A14,
A6;
hence (the
connectives of S
. m)
<> (the
connectives of S
. (m
+ 1)) by
A3;
(m
+ 2)
<= (m
+ 6) by
XREAL_1: 6;
then (
0
+ 1)
<= (m
+ 2) & (m
+ 2)
<= (
len the
connectives of B) by
A2,
XXREAL_0: 2,
NAT_1: 12;
hence (the
connectives of S
. (m
+ 2))
is_of_type (
<*I*>,I) by
A6,
A3;
(m
+ 3)
<= (m
+ 6) by
XREAL_1: 6;
then
A15: (
0
+ 1)
<= (m
+ 3) & (m
+ 3)
<= (
len the
connectives of B) by
A2,
XXREAL_0: 2,
NAT_1: 12;
hence (the
connectives of S
. (m
+ 3))
is_of_type (
<*I, I*>,I) by
A3,
A6;
(m
+ 4)
<= (m
+ 6) by
XREAL_1: 6;
then
A16: (
0
+ 1)
<= (m
+ 4) & (m
+ 4)
<= (
len the
connectives of B) by
A2,
XXREAL_0: 2,
NAT_1: 12;
hence (the
connectives of S
. (m
+ 4))
is_of_type (
<*I, I*>,I) by
A3,
A6;
(m
+ 5)
<= (m
+ 6) by
XREAL_1: 6;
then
A17: (
0
+ 1)
<= (m
+ 5) & (m
+ 5)
<= (
len the
connectives of B) by
A2,
XXREAL_0: 2,
NAT_1: 12;
hence (the
connectives of S
. (m
+ 5))
is_of_type (
<*I, I*>,I) by
A3,
A6;
(the
connectives of S
. (m
+ 3))
= (the
connectives of B
. (m
+ 3)) & (the
connectives of S
. (m
+ 5))
= (the
connectives of B
. (m
+ 5)) & (the
connectives of S
. (m
+ 4))
= (the
connectives of B
. (m
+ 4)) by
A15,
A16,
A17,
A6;
hence (the
connectives of S
. (m
+ 3))
<> (the
connectives of S
. (m
+ 4)) & (the
connectives of S
. (m
+ 3))
<> (the
connectives of S
. (m
+ 5)) & (the
connectives of S
. (m
+ 4))
<> (the
connectives of S
. (m
+ 5)) by
A3;
(
0
+ 1)
<= (m
+ 6) & the
bool-sort of S
= the
bool-sort of B by
Def52,
NAT_1: 12;
hence (the
connectives of S
. (m
+ 6))
is_of_type (
<*I, I*>,the
bool-sort of S) by
A2,
A3,
A6;
end;
theorem ::
AOFA_A00:60
Th55: for B be
bool-correct non
empty non
void
BoolSignature holds for C be non
empty non
void
ConnectivesSignature st the
carrier' of B
misses the
carrier' of C holds (B
+* C) is
bool-correct
proof
let B be
bool-correct non
empty non
void
BoolSignature;
let C be non
empty non
void
ConnectivesSignature;
assume
A1: the
carrier' of B
misses the
carrier' of C;
set S = (B
+* C);
A2: the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
Def52;
then
A3: (
len the
connectives of S)
= ((
len the
connectives of B)
+ (
len the
connectives of C)) by
FINSEQ_1: 22;
A4: (
len the
connectives of B)
>= 3 by
Def30;
hence (
len the
connectives of S)
>= 3 by
A3,
NAT_1: 12;
A5:
now
let i be
Nat;
assume 1
<= i & i
<= (
len the
connectives of B);
then
A6: i
in (
dom the
connectives of B) by
FINSEQ_3: 25;
then (the
connectives of B
. i)
in the
carrier' of B by
FUNCT_1: 102;
then
A7: (the
connectives of B
. i)
nin the
carrier' of C by
A1,
XBOOLE_0: 3;
A8: (
dom the
Arity of C)
= the
carrier' of C & (
dom the
ResultSort of C)
= the
carrier' of C by
FUNCT_2:def 1;
the
Arity of S
= (the
Arity of B
+* the
Arity of C) & the
ResultSort of S
= (the
ResultSort of B
+* the
ResultSort of C) by
Th51;
then
A9: (the
Arity of S
. (the
connectives of B
. i))
= (the
Arity of B
. (the
connectives of B
. i)) & (the
ResultSort of S
. (the
connectives of B
. i))
= (the
ResultSort of B
. (the
connectives of B
. i)) by
A7,
A8,
FUNCT_4: 11;
thus
A10: (the
connectives of S
. i)
= (the
connectives of B
. i) by
A2,
A6,
FINSEQ_1:def 7;
let x;
let I be
Element of B;
let J be
Element of S;
assume
A11: I
= J & (the
connectives of B
. i)
is_of_type (x,I);
thus (the
connectives of S
. i)
is_of_type (x,J) by
A9,
A11,
A10;
end;
A12: the
bool-sort of S
= the
bool-sort of B by
Def52;
A13: 1
<= (
len the
connectives of B) by
A4,
XXREAL_0: 2;
(the
connectives of B
. 1)
is_of_type (
{} ,the
bool-sort of B) by
Def30;
hence (the
connectives of S
. 1)
is_of_type (
{} ,the
bool-sort of S) by
A5,
A12,
A13;
A14: 2
<= (
len the
connectives of B) by
A4,
XXREAL_0: 2;
(the
connectives of B
. 2)
is_of_type (
<*the
bool-sort of B*>,the
bool-sort of B) by
Def30;
hence (the
connectives of S
. 2)
is_of_type (
<*the
bool-sort of S*>,the
bool-sort of S) by
A5,
A12,
A14;
(the
connectives of B
. 3)
is_of_type (
<*the
bool-sort of B, the
bool-sort of B*>,the
bool-sort of B) by
Def30;
hence thesis by
A5,
A4,
A12;
end;
definition
let n be
Nat;
let B be
BoolSignature;
::
AOFA_A00:def53
attr B is n
array-correct means
:
Def53: (the
ResultSort of B
. (the
connectives of B
. (n
+ 1)))
<> the
bool-sort of B;
end
registration
cluster
1-1-connectives14
-connectives11, 1, 1
-array11
array-correct4, 1
integer
bool-correct non
empty non
void for
strict
BoolSignature;
existence
proof
consider S be
1-1-connectives10
-connectives4, 1
integer
bool-correct non
empty non
void
strict
BoolSignature such that
A1: the
carrier of S
=
{
0 , 1} & ex I be
SortSymbol of S st I
= 1 & (the
connectives of S
. 4)
is_of_type (
{} ,I) by
Th47;
consider C be 4
-connectives non
empty non
void
strict
ConnectivesSignature such that
A2: C is 1, 1, 1
-array
1-1-connectives & the
carrier of S
c= the
carrier of C & the
carrier' of S
misses the
carrier' of C & (the
ResultSort of C
. (the
connectives of C
. 2))
nin
{
0 , 1} by
A1,
Th52;
take G = (S
+* C);
A3: the
connectives of G
= (the
connectives of S
^ the
connectives of C) by
Def52;
A4: the
ResultSort of G
= (the
ResultSort of S
+* the
ResultSort of C) by
Th51;
(
rng the
connectives of S)
c= the
carrier' of S & (
rng the
connectives of C)
c= the
carrier' of C by
RELAT_1:def 19;
hence the
connectives of G is
one-to-one by
A3,
A2,
XBOOLE_1: 64,
FINSEQ_3: 91;
thus G is 14
-connectives;
(10
+ 1)
= 11 & 1
>
0 ;
hence G is 11, 1, 1
-array by
A2,
Th53;
the
bool-sort of G
= the
bool-sort of S by
Def52;
then
A5: the
bool-sort of G
in
{
0 , 1} by
A1;
(1
+ 3)
<= (
len the
connectives of C) by
A2;
then 2
<= (
len the
connectives of C) by
XXREAL_0: 2;
then 2
in (
dom the
connectives of C) & (
len the
connectives of S)
= 10 by
Def29,
FINSEQ_3: 25;
then (the
connectives of C
. (1
+ 1))
= (the
connectives of G
. (10
+ (1
+ 1))) & (the
connectives of C
. (1
+ 1))
in the
carrier' of C & (
dom the
ResultSort of C)
= the
carrier' of C by
A3,
FUNCT_1: 102,
FINSEQ_1:def 7,
FUNCT_2:def 1;
hence (the
ResultSort of G
. (the
connectives of G
. (11
+ 1)))
<> the
bool-sort of G by
A2,
A5,
A4,
FUNCT_4: 13;
thus G is 4, 1
integer by
A2,
Th54;
thus G is
bool-correct by
A2,
Th55;
thus G is non
empty non
void;
end;
end
registration
let S be 11, 1, 1
-array non
empty non
void
BoolSignature;
cluster
integer for
SortSymbol of S;
existence
proof
consider J,K,L be
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;
take K;
thus K
= 1 by
A1;
end;
end
definition
let S be 11, 1, 1
-array non
empty non
void
BoolSignature;
consider J,K,L be
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;
::
AOFA_A00:def54
func
the_array_sort_of S ->
SortSymbol of S equals (the
ResultSort of S
. (the
connectives of S
. 12));
coherence by
A1;
end
definition
let S be 4, 1
integer11, 1, 1
-array non
empty non
void
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 be
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;
::
AOFA_A00:def55
func
length (a,I) ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 13),the
carrier' of S)),A))
.
<*a*>);
coherence by
A1,
A2,
Th27;
let i be
Element of (the
Sorts of A
. I);
::
AOFA_A00:def56
func a
. (i) ->
Element of (the
Sorts of A
. I) equals ((
Den ((
In ((the
connectives of S
. 11),the
carrier' of S)),A))
.
<*a, i*>);
coherence by
A1,
A2,
Th28;
let x be
Element of (the
Sorts of A
. I);
::
AOFA_A00:def57
func (a,i)
<- x ->
Element of (the
Sorts of A
. (
the_array_sort_of S)) equals ((
Den ((
In ((the
connectives of S
. 12),the
carrier' of S)),A))
.
<*a, i, x*>);
coherence by
A1,
A2,
Th29;
end
definition
let S be 4, 1
integer11, 1, 1
-array non
empty non
void
BoolSignature;
let A be
non-empty
MSAlgebra over S;
let I be
integer
SortSymbol of S;
consider J,K,L be
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 be
Element of (the
Sorts of A
. I);
let x be
Element of (the
Sorts of A
. I);
::
AOFA_A00:def58
func
init.array (i,x) ->
Element of (the
Sorts of A
. (
the_array_sort_of S)) equals ((
Den ((
In ((the
connectives of S
. 14),the
carrier' of S)),A))
.
<*i, x*>);
coherence by
A1,
A2,
Th28;
end
registration
let X be non
empty
set;
cluster
<*X*> ->
non-empty;
coherence
proof
now
let x be
object;
assume x
in (
dom
<*X*>);
then x
in (
Seg 1) by
FINSEQ_1: 89;
then x
= 1 by
FINSEQ_1: 2,
TARSKI:def 1;
hence (
<*X*>
. x) is non
empty by
FINSEQ_1: 40;
end;
hence thesis;
end;
let Y,Z be non
empty
set;
cluster
<*X, Y, Z*> ->
non-empty;
coherence ;
end
registration
let X be
functional non
empty
set;
let Y,Z be non
empty
set;
let f be
Element of (
product
<*X, Y, Z*>);
cluster (f
. 1) ->
Relation-like
Function-like;
coherence
proof
consider x,y,z be
object such that
A1: x
in X & y
in Y & z
in Z & f
=
<*x, y, z*> by
FINSEQ_3: 125;
thus thesis by
A1,
FINSEQ_1: 45;
end;
end
registration
let X be
integer-membered non
empty
set;
let Y be non
empty
set;
let f be
Element of (
product
<*X, Y*>);
cluster (f
. 1) ->
integer;
coherence
proof
consider x,y be
object such that
A1: x
in X & y
in Y & f
=
<*x, y*> by
FINSEQ_3: 124;
thus thesis by
A1,
FINSEQ_1: 44;
end;
end
theorem ::
AOFA_A00:61
Th56: for I,N be
set holds for S be 1, I, N
-array non
empty non
void
ConnectivesSignature holds for Y be non
empty
set holds for X be
non-empty
ManySortedSet of Y st ((the
ResultSort of S
. (the
connectives of S
. 2))
nin Y or (X
. (the
ResultSort of S
. (the
connectives of S
. 2)))
= ((X
. I)
^omega )) & (X
. N)
=
INT & I
in Y holds ex A be
non-empty
strict
MSAlgebra over S st A is 1, I, N
-array & the
Sorts of A
tolerates X
proof
let I,N be
set;
let S be 1, I, N
-array non
empty non
void
ConnectivesSignature;
let A be non
empty
set;
let V be
non-empty
ManySortedSet of A;
assume
A1: (the
ResultSort of S
. (the
connectives of S
. 2))
nin A or (V
. (the
ResultSort of S
. (the
connectives of S
. 2)))
= ((V
. I)
^omega );
assume
A2: (V
. N)
=
INT & I
in A;
set X0 = the
non-empty
ManySortedSet of the
carrier of S;
set X = (X0
+* (V
| the
carrier of S));
reconsider X as
non-empty
ManySortedSet of the
carrier of S;
A3: (
len the
connectives of S)
>= (1
+ 3) by
Def50;
consider J,K,L be
Element of S such that
A4: L
= I & K
= N & J
<> L & J
<> K & (the
connectives of S
. 1)
is_of_type (
<*J, K*>,L) & (the
connectives of S
. (1
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of S
. (1
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of S
. (1
+ 3))
is_of_type (
<*K, L*>,J) by
Def50;
A5: J
nin A or (V
. J)
= ((V
. L)
^omega ) by
A1,
A4;
set Z = (X
+* (N,
INT ));
set Y = (Z
+* (J,((Z
. L)
^omega )));
set O = the
ManySortedFunction of ((Y
# )
* the
Arity of S), (Y
* the
ResultSort of S);
A6: (
dom V)
= A & (
dom X)
= the
carrier of S by
PARTFUN1:def 2;
then
A7: (
dom (V
| the
carrier of S))
= (A
/\ the
carrier of S) by
RELAT_1: 61;
then I
in (
dom (V
| the
carrier of S)) by
A2,
A4,
XBOOLE_0:def 4;
then
A8: (X
. I)
= ((V
| the
carrier of S)
. I) by
FUNCT_4: 13
.= (V
. I) by
A4,
FUNCT_1: 49;
N
in (
dom V) by
A2,
FUNCT_1:def 2;
then N
in (
dom (V
| the
carrier of S)) by
A6,
A7,
A4,
XBOOLE_0:def 4;
then
A9: (X
. N)
= ((V
| the
carrier of S)
. N) by
FUNCT_4: 13
.= (V
. N) by
A4,
FUNCT_1: 49;
deffunc
F(
Function) = (
IFIN (($1
. 2),(
proj1 ($1
. 1)),($1
.. (1,($1
. 2))), the
Element of (Y
. L)));
N
= I or N
<> I;
then
A10: (Z
. I)
= (X
. I) or (Z
. I)
=
INT & (X
. I)
=
INT by
A2,
A4,
A9,
A6,
FUNCT_7: 31,
FUNCT_7: 32;
consider f be
Function such that
A11: (
dom f)
= (
product
<*(Y
. J), (Y
. K)*>) & for x be
Element of (
product
<*(Y
. J), (Y
. K)*>) holds (f
. x)
=
F(x) from
FUNCT_1:sch 4;
A12: (
dom Y)
= the
carrier of S & (
dom Z)
= the
carrier of S & (
dom X)
= the
carrier of S by
PARTFUN1:def 2;
then
A13: (Y
. L)
= (Z
. L) & (Z
. K)
=
INT by
A4,
FUNCT_7: 31,
FUNCT_7: 32;
then
A14: (Y
. J)
= ((Y
. L)
^omega ) & (Y
. K)
=
INT by
A12,
A4,
FUNCT_7: 31,
FUNCT_7: 32;
(
rng f)
c= (Y
. L)
proof
let x be
object;
assume x
in (
rng f);
then
consider y be
object such that
A15: y
in (
dom f) & x
= (f
. y) by
FUNCT_1:def 3;
reconsider y as
Element of (
product
<*(Y
. J), (Y
. K)*>) by
A11,
A15;
A16: x
=
F(y) by
A11,
A15;
consider a,b be
object such that
A17: a
in (Y
. J) & b
in (Y
. K) & y
=
<*a, b*> by
FINSEQ_3: 124;
reconsider a as
Element of ((Y
. L)
^omega ) by
A13,
A17,
A12,
FUNCT_7: 31;
A18: a
= (y
. 1) & b
= (y
. 2) & a is
XFinSequence of (Y
. L) by
A17,
FINSEQ_1: 44;
per cases ;
suppose
A19: (y
. 2)
in (
proj1 (y
. 1));
then x
= (y
.. (1,(y
. 2))) by
A16,
MATRIX_7:def 1
.= (a
. b) by
A18,
Th5;
hence thesis by
A18,
A19,
FUNCT_1: 102;
end;
suppose (y
. 2)
nin (
proj1 (y
. 1));
then x
= the
Element of (Y
. L) by
A16,
MATRIX_7:def 1;
hence thesis;
end;
end;
then
reconsider f as
Function of (
product
<*(Y
. J), (Y
. K)*>), (Y
. L) by
A11,
FUNCT_2: 2;
1
<= (
len the
connectives of S) by
A3,
XXREAL_0: 2;
then
A20: 1
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
reconsider o1 = (the
connectives of S
. 1) as
OperSymbol of S by
FUNCT_1: 102;
A21: (the
Arity of S
. o1)
=
<*J, K*> & (the
ResultSort of S
. o1)
= L by
A4;
<*J, K*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
then ((Y
# )
. (the
Arity of S
. o1))
= (
product (Y
*
<*J, K*>)) & (Y
*
<*J, K*>)
=
<*(Y
. J), (Y
. K)*> & (Y
. (the
ResultSort of S
. o1))
= (Y
. L) by
A21,
A12,
FINSEQ_2:def 5,
FINSEQ_2: 125;
then (((Y
# )
* the
Arity of S)
. o1)
= (
product
<*(Y
. J), (Y
. K)*>) & ((Y
* the
ResultSort of S)
. o1)
= (Y
. L) by
FUNCT_2: 15;
then
reconsider f as
Function of (((Y
# )
* the
Arity of S)
. o1), ((Y
* the
ResultSort of S)
. o1);
deffunc
G(
Element of (
product
<*((Y
. L)
^omega ), (Y
. K), (Y
. L)*>)) = (($1
. 1)
+* (($1
. 2),($1
. 3)));
consider g be
Function such that
A22: (
dom g)
= (
product
<*((Y
. L)
^omega ), (Y
. K), (Y
. L)*>) & for x be
Element of (
product
<*((Y
. L)
^omega ), (Y
. K), (Y
. L)*>) holds (g
. x)
=
G(x) from
FUNCT_1:sch 4;
(
rng g)
c= (Y
. J)
proof
let x be
object;
assume x
in (
rng g);
then
consider y be
object such that
A23: y
in (
dom g) & x
= (g
. y) by
FUNCT_1:def 3;
reconsider y as
Element of (
product
<*((Y
. L)
^omega ), (Y
. K), (Y
. L)*>) by
A22,
A23;
consider a,b,c be
object such that
A24: a
in ((Y
. L)
^omega ) & b
in (Y
. K) & c
in (Y
. L) & y
=
<*a, b, c*> by
FINSEQ_3: 125;
reconsider a as
XFinSequence of (Y
. L) by
A24;
reconsider c as
Element of (Y
. L) by
A24;
A25: a
= (y
. 1) & b
= (y
. 2) & c
= (y
. 3) by
A24,
FINSEQ_1: 45;
A26: x
= (a
+* (b,c)) by
A25,
A22,
A23;
x is
XFinSequence of (Y
. L) by
A26;
then x
in ((Y
. L)
^omega ) by
AFINSQ_1:def 7;
hence thesis by
A14;
end;
then
reconsider g as
Function of (
product
<*(Y
. J), (Y
. K), (Y
. L)*>), (Y
. J) by
A14,
A22,
FUNCT_2: 2;
2
<= (
len the
connectives of S) by
A3,
XXREAL_0: 2;
then
A27: 2
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
reconsider o2 = (the
connectives of S
. 2) as
OperSymbol of S by
FUNCT_1: 102;
A28: (the
Arity of S
. o2)
=
<*J, K, L*> & (the
ResultSort of S
. o2)
= J by
A4;
<*J, K, L*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
then ((Y
# )
. (the
Arity of S
. o2))
= (
product (Y
*
<*J, K, L*>)) & (Y
*
<*J, K, L*>)
=
<*(Y
. J), (Y
. K), (Y
. L)*> & (Y
. (the
ResultSort of S
. o2))
= (Y
. J) by
A28,
A12,
FINSEQ_2:def 5,
FINSEQ_2: 126;
then (((Y
# )
* the
Arity of S)
. o2)
= (
product
<*(Y
. J), (Y
. K), (Y
. L)*>) & ((Y
* the
ResultSort of S)
. o2)
= (Y
. J) by
FUNCT_2: 15;
then
reconsider g as
Function of (((Y
# )
* the
Arity of S)
. o2), ((Y
* the
ResultSort of S)
. o2);
deffunc
H(
Element of (
product
<*((Y
. L)
^omega )*>)) = (
card ($1
. 1));
consider h be
Function such that
A29: (
dom h)
= (
product
<*((Y
. L)
^omega )*>) & for x be
Element of (
product
<*((Y
. L)
^omega )*>) holds (h
. x)
=
H(x) from
FUNCT_1:sch 4;
(
rng h)
c= (Y
. K)
proof
let x be
object;
assume x
in (
rng h);
then
consider y be
object such that
A30: y
in (
dom h) & x
= (h
. y) by
FUNCT_1:def 3;
reconsider y as
Element of (
product
<*((Y
. L)
^omega )*>) by
A29,
A30;
A31: x
=
H(y) by
A29,
A30;
consider a be
object such that
A32: a
in ((Y
. L)
^omega ) & y
=
<*a*> by
FINSEQ_3: 123;
reconsider a as
0
-based
finite
array of (Y
. L) by
A32;
x
= (
len a) by
A31,
A32,
FINSEQ_1: 40;
hence thesis by
A14,
INT_1:def 2;
end;
then
reconsider h as
Function of (
product
<*(Y
. J)*>), (Y
. K) by
A14,
A29,
FUNCT_2: 2;
3
<= (
len the
connectives of S) by
A3,
XXREAL_0: 2;
then
A33: 3
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
reconsider o3 = (the
connectives of S
. 3) as
OperSymbol of S by
FUNCT_1: 102;
A34: (the
Arity of S
. o3)
=
<*J*> & (the
ResultSort of S
. o3)
= K by
A4;
<*J*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
then ((Y
# )
. (the
Arity of S
. o3))
= (
product (Y
*
<*J*>)) & (Y
*
<*J*>)
=
<*(Y
. J)*> & (Y
. (the
ResultSort of S
. o3))
= (Y
. K) by
A34,
A12,
FINSEQ_2:def 5,
FINSEQ_2: 34;
then (((Y
# )
* the
Arity of S)
. o3)
= (
product
<*(Y
. J)*>) & ((Y
* the
ResultSort of S)
. o3)
= (Y
. K) by
FUNCT_2: 15;
then
reconsider h as
Function of (((Y
# )
* the
Arity of S)
. o3), ((Y
* the
ResultSort of S)
. o3);
deffunc
H(
Element of (
product
<*
INT , (Y
. L)*>)) = (
IFGT (
0 ,($1
. 1),
{} ,(($1
. 1)
--> ($1
. 2))));
consider j be
Function such that
A35: (
dom j)
= (
product
<*
INT , (Y
. L)*>) & for x be
Element of (
product
<*
INT , (Y
. L)*>) holds (j
. x)
=
H(x) from
FUNCT_1:sch 4;
(
rng j)
c= (Y
. J)
proof
let x be
object;
assume x
in (
rng j);
then
consider y be
object such that
A36: y
in (
dom j) & x
= (j
. y) by
FUNCT_1:def 3;
reconsider y as
Element of (
product
<*(Y
. K), (Y
. L)*>) by
A35,
A36,
A13,
A4,
FUNCT_7: 32;
consider b,c be
object such that
A37: b
in (Y
. K) & c
in (Y
. L) & y
=
<*b, c*> by
FINSEQ_3: 124;
reconsider c as
Element of (Y
. L) by
A37;
reconsider b as
Integer by
A37,
A14;
A38: b
= (y
. 1) & c
= (y
. 2) by
A37,
FINSEQ_1: 44;
x
= (
IFGT (
0 ,b,
{} ,((
Segm b)
--> c))) by
A38,
A35,
A36;
then x
=
{} or b
>=
0 & x
= ((
Segm b)
--> c) & (b is non
negative implies b is
Nat) by
XXREAL_0:def 11;
then x
= (
<%> (Y
. L)) or ex b be non
negative
Nat st x
= (b
--> c);
hence thesis by
A14,
AFINSQ_1:def 7;
end;
then
reconsider j as
Function of (
product
<*(Y
. K), (Y
. L)*>), (Y
. J) by
A14,
A35,
FUNCT_2: 2;
A39: 4
in (
dom the
connectives of S) by
A3,
FINSEQ_3: 25;
then
reconsider o4 = (the
connectives of S
. 4) as
OperSymbol of S by
FUNCT_1: 102;
A40: (the
Arity of S
. o4)
=
<*K, L*> & (the
ResultSort of S
. o4)
= J by
A4;
<*K, L*>
in (the
carrier of S
* ) by
FINSEQ_1:def 11;
then ((Y
# )
. (the
Arity of S
. o4))
= (
product (Y
*
<*K, L*>)) & (Y
*
<*K, L*>)
=
<*(Y
. K), (Y
. L)*> & (Y
. (the
ResultSort of S
. o4))
= (Y
. J) by
A40,
A12,
FINSEQ_2:def 5,
FINSEQ_2: 125;
then (((Y
# )
* the
Arity of S)
. o4)
= (
product
<*(Y
. K), (Y
. L)*>) & ((Y
* the
ResultSort of S)
. o4)
= (Y
. J) by
FUNCT_2: 15;
then
reconsider j as
Function of (((Y
# )
* the
Arity of S)
. o4), ((Y
* the
ResultSort of S)
. o4);
set U = ((((O
+* (o1,f))
+* (o2,g))
+* (o3,h))
+* (o4,j));
A41: (
dom O)
= the
carrier' of S & (
dom (O
+* (o1,f)))
= the
carrier' of S & (
dom ((O
+* (o1,f))
+* (o2,g)))
= the
carrier' of S & (
dom U)
= the
carrier' of S & (
dom (((O
+* (o1,f))
+* (o2,g))
+* (o3,h)))
= the
carrier' of S by
PARTFUN1:def 2;
(
card (the
Arity of S
. o1))
= 2 & (
card (the
Arity of S
. o2))
= 3 & (
card (the
Arity of S
. o3))
= 1 & (
card (the
Arity of S
. o4))
= 2 by
A21,
A28,
A34,
A40,
CARD_1:def 7;
then
A42: o1
<> o2 & o2
<> o3 & o3
<> o1 & o1
<> o4 & o2
<> o4 & o3
<> o4 by
A4;
A43: (U
. o1)
= ((((O
+* (o1,f))
+* (o2,g))
+* (o3,h))
. o1) by
A42,
FUNCT_7: 32
.= (((O
+* (o1,f))
+* (o2,g))
. o1) by
A42,
FUNCT_7: 32
.= ((O
+* (o1,f))
. o1) by
A42,
FUNCT_7: 32
.= f by
A41,
FUNCT_7: 31;
A44: (U
. o2)
= ((((O
+* (o1,f))
+* (o2,g))
+* (o3,h))
. o2) by
A42,
FUNCT_7: 32
.= (((O
+* (o1,f))
+* (o2,g))
. o2) by
A42,
FUNCT_7: 32
.= g by
A41,
FUNCT_7: 31;
A45: (U
. o3)
= ((((O
+* (o1,f))
+* (o2,g))
+* (o3,h))
. o3) by
A42,
FUNCT_7: 32
.= h by
A41,
FUNCT_7: 31;
A46: (U
. o4)
= j by
A41,
FUNCT_7: 31;
U is
ManySortedFunction of ((Y
# )
* the
Arity of S), (Y
* the
ResultSort of S)
proof
let x be
object;
assume x
in the
carrier' of S;
then
reconsider o = x as
OperSymbol of S;
per cases ;
suppose o
= o1 or o
= o2 or o
= o3 or o
= o4;
hence (U
. x) is
Function of (((Y
# )
* the
Arity of S)
. x), ((Y
* the
ResultSort of S)
. x) by
A43,
A44,
A45,
A41,
FUNCT_7: 31;
end;
suppose
A47: o
<> o1 & o
<> o2 & o
<> o3 & o
<> o4;
(U
. o)
= ((((O
+* (o1,f))
+* (o2,g))
+* (o3,h))
. o) by
A47,
FUNCT_7: 32
.= (((O
+* (o1,f))
+* (o2,g))
. o) by
A47,
FUNCT_7: 32
.= ((O
+* (o1,f))
. o) by
A47,
FUNCT_7: 32
.= (O
. o) by
A47,
FUNCT_7: 32;
hence (U
. x) is
Function of (((Y
# )
* the
Arity of S)
. x), ((Y
* the
ResultSort of S)
. x);
end;
end;
then
reconsider U as
ManySortedFunction of ((Y
# )
* the
Arity of S), (Y
* the
ResultSort of S);
set A =
MSAlgebra (# Y, U #);
A is
non-empty;
then
reconsider A as
non-empty
strict
MSAlgebra over S;
take A;
thus A is 1, I, N
-array
proof
take J, L;
thus L
= I by
A4;
thus (the
connectives of S
. 1)
is_of_type (
<*J, N*>,L) by
A4;
thus (the
Sorts of A
. J)
= ((the
Sorts of A
. L)
^omega ) & (the
Sorts of A
. N)
=
INT by
A4,
A13,
A12,
FUNCT_7: 31,
FUNCT_7: 32;
hereby
let a be
0
-based
finite
array of (the
Sorts of A
. L);
A48: a
in ((Y
. L)
^omega ) by
AFINSQ_1:def 7;
hereby
let i be
Integer;
assume
A49: i
in (
dom a);
A50: i
in (Y
. N) by
A4,
A14,
INT_1:def 2;
then
A51:
<*a, i*>
in (
product
<*((Y
. L)
^omega ), (Y
. N)*>) by
A48,
FINSEQ_3: 124;
A52: (
<*a, i*>
. 1)
= a & (
<*a, i*>
. 2)
= i by
FINSEQ_1: 44;
(the
connectives of S
/. 1)
= o1 by
A20,
PARTFUN1:def 6;
hence ((
Den ((the
connectives of S
/. 1),A))
.
<*a, i*>)
=
F(<*) by
A4,
A11,
A14,
A43,
A51
.= (
<*a, i*>
.. (1,i)) by
A52,
A49,
MATRIX_7:def 1
.= (a
. i) by
A52,
Th5;
let x be
Element of A, L;
A53:
<*a, i, x*>
in (
product
<*((Y
. L)
^omega ), (Y
. N), (Y
. L)*>) by
A48,
A50,
FINSEQ_3: 125;
A54: (
<*a, i, x*>
. 1)
= a & (
<*a, i, x*>
. 2)
= i & (
<*a, i, x*>
. 3)
= x by
FINSEQ_1: 45;
(the
connectives of S
/. 2)
= o2 by
A27,
PARTFUN1:def 6;
hence ((
Den ((the
connectives of S
/. (1
+ 1)),A))
.
<*a, i, x*>)
= (a
+* (i,x)) by
A4,
A22,
A44,
A53,
A54;
end;
A55:
<*a*>
in (
product
<*((Y
. L)
^omega )*>) by
A48,
FINSEQ_3: 123;
A56: (
<*a*>
. 1)
= a by
FINSEQ_1: 40;
(the
connectives of S
/. 3)
= o3 by
A33,
PARTFUN1:def 6;
hence ((
Den ((the
connectives of S
/. (1
+ 2)),A))
.
<*a*>)
= (
card a) by
A29,
A45,
A55,
A56;
end;
let i be
Integer;
let x be
Element of A, L;
assume
A57: i
>=
0 ;
A58: o4
= (the
connectives of S
/. (1
+ 3)) by
A39,
PARTFUN1:def 6;
i
in
INT & x
in (Y
. L) by
INT_1:def 2;
then
<*i, x*>
in (
product
<*
INT , (Y
. L)*>) & (
<*i, x*>
. 1)
= i & (
<*i, x*>
. 2)
= x by
FINSEQ_1: 44,
FINSEQ_3: 124;
hence ((
Den ((the
connectives of S
/. (1
+ 3)),A))
.
<*i, x*>)
= (
IFGT (
0 ,i,
{} ,((
Segm i)
--> x))) by
A35,
A46,
A58
.= ((
Segm i)
--> x) by
A57,
XXREAL_0:def 11;
end;
thus the
Sorts of A
tolerates V
proof
let x be
object;
assume
A59: x
in ((
dom the
Sorts of A)
/\ (
dom V));
then x
in (the
carrier of S
/\ (
dom V)) by
PARTFUN1:def 2;
then
A60: x
in (
dom (V
| the
carrier of S)) by
RELAT_1: 61;
then
A61: (X
. x)
= ((V
| the
carrier of S)
. x) by
FUNCT_4: 13
.= (V
. x) by
A60,
FUNCT_1: 47;
per cases ;
suppose x
<> N & x
<> J;
then (Z
. x)
= (X
. x) & (Y
. x)
= (Z
. x) by
FUNCT_7: 32;
hence (the
Sorts of A
. x)
= (V
. x) by
A61;
end;
suppose x
= N;
hence (the
Sorts of A
. x)
= (V
. x) by
A2,
A13,
A4,
FUNCT_7: 32;
end;
suppose
A62: x
= J;
then x
nin (
dom V) or x
in (
dom V) & (V
. x)
= ((V
. L)
^omega ) by
A5,
PARTFUN1:def 2;
hence (the
Sorts of A
. x)
= (V
. x) by
A59,
A10,
A62,
A12,
A4,
FUNCT_7: 31,
XBOOLE_0:def 4,
A8;
end;
end;
end;
registration
let I,N be
set;
let S be 1, I, N
-array non
empty non
void
ConnectivesSignature;
cluster 1, I, N
-array for
non-empty
strict
MSAlgebra over S;
existence
proof
set Y =
{I, N};
set V = ((I,N)
--> (
INT ,
INT ));
consider J,K,L be
Element of S such that
A1: L
= I & K
= N & J
<> L & J
<> K & (the
connectives of S
. 1)
is_of_type (
<*J, K*>,L) & (the
connectives of S
. (1
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of S
. (1
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of S
. (1
+ 3))
is_of_type (
<*K, L*>,J) by
Def50;
A2: (the
ResultSort of S
. (the
connectives of S
. 2))
nin Y by
A1,
TARSKI:def 2;
(
dom V)
= Y & V
= ((I
.-->
INT )
+* (N
.-->
INT )) by
FUNCT_4: 62,
FUNCT_4:def 4;
then
reconsider V as
non-empty
ManySortedSet of Y by
RELAT_1:def 18,
PARTFUN1:def 2;
(V
. N)
=
INT & I
in Y by
TARSKI:def 2,
FUNCT_4: 63;
then
consider A be
non-empty
strict
MSAlgebra over S such that
A3: A is 1, I, N
-array & the
Sorts of A
tolerates V by
A2,
Th56;
take A;
thus thesis by
A3;
end;
end
definition
let S1 be non
empty
BoolSignature;
let S2 be non
empty
ConnectivesSignature;
let A1 be
non-empty
MSAlgebra over S1;
let A2 be
non-empty
MSAlgebra over S2;
::
AOFA_A00:def59
func (S1,A1)
+* A2 ->
strict
non-empty
MSAlgebra over (S1
+* S2) equals (A1
+* A2);
coherence
proof
the ManySortedSign of (S1
+* S2)
= (S1 qua non
empty
ManySortedSign
+* S2) by
Def52;
then
reconsider A = (A1
+* A2) as
MSAlgebra over (S1
+* S2);
A is
non-empty;
then
reconsider A = (A1
+* A2) as
non-empty
MSAlgebra over (S1
+* S2);
A
=
MSAlgebra (# the
Sorts of A, the
Charact of A #);
hence thesis;
end;
end
theorem ::
AOFA_A00:62
Th57: for B be
bool-correct non
empty non
void
BoolSignature holds for A1 be
bool-correct
non-empty
MSAlgebra over B holds for C be non
empty non
void
ConnectivesSignature st the
carrier' of B
misses the
carrier' of C holds for A2 be
non-empty
MSAlgebra over C st the
Sorts of A1
tolerates the
Sorts of A2 holds ((B,A1)
+* A2) is
bool-correct
proof
let B be
bool-correct non
empty non
void
BoolSignature;
let A1 be
bool-correct
non-empty
MSAlgebra over B;
let C be non
empty non
void
ConnectivesSignature;
assume
A1: the
carrier' of B
misses the
carrier' of C;
let A2 be
non-empty
MSAlgebra over C;
assume
A2: the
Sorts of A1
tolerates the
Sorts of A2;
set S = (B
+* C);
set A = ((B,A1)
+* A2);
A3: (the
Sorts of A1
. the
bool-sort of B)
=
BOOLEAN & ((
Den ((
In ((the
connectives of B
. 1),the
carrier' of B)),A1))
.
{} )
=
TRUE & for x,y be
boolean
object holds ((
Den ((
In ((the
connectives of B
. 2),the
carrier' of B)),A1))
.
<*x*>)
= (
'not' x) & ((
Den ((
In ((the
connectives of B
. 3),the
carrier' of B)),A1))
.
<*x, y*>)
= (x
'&' y) by
Def31;
A4: (
dom the
Sorts of A1)
= the
carrier of B by
PARTFUN1:def 2;
A5: the
Sorts of A
= (the
Sorts of A1
+* the
Sorts of A2) & the
Charact of A
= (the
Charact of A1
+* the
Charact of A2) by
A2,
CIRCCOMB:def 4;
the
bool-sort of S
= the
bool-sort of B by
Def52;
hence (the
Sorts of A
. the
bool-sort of S)
=
BOOLEAN by
A2,
A3,
A4,
A5,
FUNCT_4: 15;
A6: the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
Def52;
A7: (
len the
connectives of B)
>= 3 by
Def30;
then (
len the
connectives of B)
>= 2 & (
len the
connectives of B)
>= 1 by
XXREAL_0: 2;
then
A8: 1
in (
dom the
connectives of B) & 2
in (
dom the
connectives of B) & 3
in (
dom the
connectives of B) by
A7,
FINSEQ_3: 25;
A9: (
dom the
connectives of B)
c= (
dom the
connectives of S) by
A6,
FINSEQ_1: 26;
A10: (
dom the
Charact of A1)
= the
carrier' of B & (
dom the
Charact of A2)
= the
carrier' of C by
PARTFUN1:def 2;
A11: (the
connectives of S
. 1)
in the
carrier' of S & (the
connectives of S
. 2)
in the
carrier' of S & (the
connectives of S
. 3)
in the
carrier' of S & (the
connectives of B
. 1)
in the
carrier' of B & (the
connectives of B
. 2)
in the
carrier' of B & (the
connectives of B
. 3)
in the
carrier' of B by
A9,
A8,
FUNCT_1: 102;
(the
connectives of S
. 1)
= (the
connectives of B
. 1) & (the
connectives of S
. 2)
= (the
connectives of B
. 2) & (the
connectives of S
. 3)
= (the
connectives of B
. 3) by
A6,
A8,
FINSEQ_1:def 7;
then (the
connectives of S
. 1)
= (
In ((the
connectives of B
. 1),the
carrier' of B)) & (the
connectives of S
. 2)
= (
In ((the
connectives of B
. 2),the
carrier' of B)) & (the
connectives of S
. 3)
= (
In ((the
connectives of B
. 3),the
carrier' of B)) by
A8,
FUNCT_1: 102,
SUBSET_1:def 8;
then (
In ((the
connectives of S
. 1),the
carrier' of S))
= (
In ((the
connectives of B
. 1),the
carrier' of B)) & (
In ((the
connectives of S
. 2),the
carrier' of S))
= (
In ((the
connectives of B
. 2),the
carrier' of B)) & (
In ((the
connectives of S
. 3),the
carrier' of S))
= (
In ((the
connectives of B
. 3),the
carrier' of B)) by
A11,
SUBSET_1:def 8;
then (
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A))
= (
Den ((
In ((the
connectives of B
. 1),the
carrier' of B)),A1)) & (
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A))
= (
Den ((
In ((the
connectives of B
. 2),the
carrier' of B)),A1)) & (
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A))
= (
Den ((
In ((the
connectives of B
. 3),the
carrier' of B)),A1)) by
A1,
A5,
A10,
FUNCT_4: 16;
hence ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A))
.
{} )
=
TRUE & for x,y be
boolean
object holds ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A))
.
<*x*>)
= (
'not' x) & ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A))
.
<*x, y*>)
= (x
'&' y) by
Def31;
end;
theorem ::
AOFA_A00:63
Th58: for n be
Nat, I be
set st n
>= 4 holds for B be
bool-correct non
empty non
void
BoolSignature st B is n, I
integer holds for A1 be
bool-correct
non-empty
MSAlgebra over B st A1 is n, I
integer holds for C be non
empty non
void
ConnectivesSignature st the
carrier' of B
misses the
carrier' of C holds for A2 be
non-empty
MSAlgebra over C st the
Sorts of A1
tolerates the
Sorts of A2 holds for S be
bool-correct non
empty non
void
BoolSignature st the BoolSignature of S
= (B
+* C) holds for A be
bool-correct
non-empty
MSAlgebra over S st A
= ((B,A1)
+* A2) holds A is n, I
integer
proof
let n be
Nat, s be
set such that
A1: n
>= 4;
let B be
bool-correct non
empty non
void
BoolSignature;
assume
A2: B is n, s
integer;
let A1 be
bool-correct
non-empty
MSAlgebra over B;
given I be
SortSymbol of B such that
A3: I
= s & (the
connectives of B
. n)
is_of_type (
{} ,I) & (the
Sorts of A1
. I)
=
INT & ((
Den ((
In ((the
connectives of B
. n),the
carrier' of B)),A1))
.
{} )
=
0 & ((
Den ((
In ((the
connectives of B
. (n
+ 1)),the
carrier' of B)),A1))
.
{} )
= 1 & for i,j be
Integer holds ((
Den ((
In ((the
connectives of B
. (n
+ 2)),the
carrier' of B)),A1))
.
<*i*>)
= (
- i) & ((
Den ((
In ((the
connectives of B
. (n
+ 3)),the
carrier' of B)),A1))
.
<*i, j*>)
= (i
+ j) & ((
Den ((
In ((the
connectives of B
. (n
+ 4)),the
carrier' of B)),A1))
.
<*i, j*>)
= (i
* j) & (j
<>
0 implies ((
Den ((
In ((the
connectives of B
. (n
+ 5)),the
carrier' of B)),A1))
.
<*i, j*>)
= (i
div j)) & ((
Den ((
In ((the
connectives of B
. (n
+ 6)),the
carrier' of B)),A1))
.
<*i, j*>)
= (
IFGT (i,j,
FALSE ,
TRUE ));
let C be non
empty non
void
ConnectivesSignature;
assume
A4: the
carrier' of B
misses the
carrier' of C;
let A2 be
non-empty
MSAlgebra over C;
assume
A5: the
Sorts of A1
tolerates the
Sorts of A2;
let S be
bool-correct non
empty non
void
BoolSignature;
assume
A6: the BoolSignature of S
= (B
+* C);
let A be
bool-correct
non-empty
MSAlgebra over S;
assume
A7: A
= ((B,A1)
+* A2);
the
carrier of S
= (the
carrier of B
\/ the
carrier of C) by
A6,
Th51;
then
reconsider I as
SortSymbol of S by
XBOOLE_0:def 3;
take I;
thus I
= s by
A3;
A8: (
dom the
Sorts of A1)
= the
carrier of B by
PARTFUN1:def 2;
A9: the
Sorts of A
= (the
Sorts of A1
+* the
Sorts of A2) & the
Charact of A
= (the
Charact of A1
+* the
Charact of A2) by
A5,
A7,
CIRCCOMB:def 4;
A10: (
len the
connectives of B)
>= (n
+ 6) & n
<= (n
+ 6) by
A2,
NAT_1: 12;
then 1
<= n & n
<= (
len the
connectives of B) by
A1,
XXREAL_0: 2;
then
A11: n
in (
dom the
connectives of B) & the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
A6,
Def52,
FINSEQ_3: 25;
then
A12: (the
connectives of S
. n)
= (the
connectives of B
. n) & (the
connectives of B
. n)
in the
carrier' of B by
FUNCT_1: 102,
FINSEQ_1:def 7;
A13: (
dom the
ResultSort of B)
= the
carrier' of B & (
dom the
ResultSort of C)
= the
carrier' of C & (
dom the
Arity of B)
= the
carrier' of B & (
dom the
Arity of C)
= the
carrier' of C by
FUNCT_2:def 1;
the
ResultSort of S
= (the
ResultSort of B
+* the
ResultSort of C) & the
Arity of S
= (the
Arity of B
+* the
Arity of C) by
A6,
Th51;
then (the
ResultSort of S
. (the
connectives of S
. n))
= (the
ResultSort of B
. (the
connectives of B
. n)) & (the
Arity of S
. (the
connectives of S
. n))
= (the
Arity of B
. (the
connectives of B
. n)) by
A4,
A12,
A13,
FUNCT_4: 16;
hence (the
Arity of S
. (the
connectives of S
. n))
=
{} & (the
ResultSort of S
. (the
connectives of S
. n))
= I by
A3;
thus (the
Sorts of A
. I)
=
INT by
A8,
A9,
A3,
A5,
FUNCT_4: 15;
A14:
now
let i be
Nat;
assume i
>= 4 & i
<= (n
+ 6);
then 1
<= i & i
<= (
len the
connectives of B) by
A10,
XXREAL_0: 2;
then
A15: i
in (
dom the
connectives of B) by
FINSEQ_3: 25;
then
A16: (the
connectives of B
. i)
in the
carrier' of B & (the
connectives of B
. i)
= (the
connectives of S
. i) by
A11,
FUNCT_1: 102,
FINSEQ_1:def 7;
the
carrier' of S
= (the
carrier' of B
\/ the
carrier' of C) by
A6,
Th51;
then (the
connectives of S
. i)
in the
carrier' of S by
A16,
XBOOLE_0:def 3;
then
A17: (
In ((the
connectives of B
. i),the
carrier' of B))
= (the
connectives of B
. i) & (
In ((the
connectives of S
. i),the
carrier' of S))
= (the
connectives of S
. i) by
A15,
FUNCT_1: 102,
SUBSET_1:def 8;
(
dom the
Charact of A1)
= the
carrier' of B & (
dom the
Charact of A2)
= the
carrier' of C by
PARTFUN1:def 2;
hence (
Den ((
In ((the
connectives of S
. i),the
carrier' of S)),A))
= (
Den ((
In ((the
connectives of B
. i),the
carrier' of B)),A1)) by
A9,
A16,
A17,
A4,
FUNCT_4: 16;
end;
n
<= (n
+ 6) by
NAT_1: 11;
hence ((
Den ((
In ((the
connectives of S
. n),the
carrier' of S)),A))
.
{} )
=
0 by
A1,
A3,
A14;
(n
+ 1)
>= 4 & (n
+ 1)
<= (n
+ 6) by
A1,
NAT_1: 12,
XREAL_1: 6;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 1)),the
carrier' of S)),A))
.
{} )
= 1 by
A3,
A14;
let i,j be
Integer;
(n
+ 2)
>= 4 & (n
+ 2)
<= (n
+ 6) by
A1,
NAT_1: 12,
XREAL_1: 6;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 2)),the
carrier' of S)),A))
.
<*i*>)
= ((
Den ((
In ((the
connectives of B
. (n
+ 2)),the
carrier' of B)),A1))
.
<*i*>) by
A14
.= (
- i) by
A3;
(n
+ 3)
>= 4 & (n
+ 3)
<= (n
+ 6) by
A1,
NAT_1: 12,
XREAL_1: 6;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 3)),the
carrier' of S)),A))
.
<*i, j*>)
= ((
Den ((
In ((the
connectives of B
. (n
+ 3)),the
carrier' of B)),A1))
.
<*i, j*>) by
A14
.= (i
+ j) by
A3;
(n
+ 4)
>= 4 & (n
+ 4)
<= (n
+ 6) by
NAT_1: 12,
XREAL_1: 6;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 4)),the
carrier' of S)),A))
.
<*i, j*>)
= ((
Den ((
In ((the
connectives of B
. (n
+ 4)),the
carrier' of B)),A1))
.
<*i, j*>) by
A14
.= (i
* j) by
A3;
hereby
assume
A18: j
<>
0 ;
(n
+ 5)
>= 4 & (n
+ 5)
<= (n
+ 6) by
NAT_1: 12,
XREAL_1: 6;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 5)),the
carrier' of S)),A))
.
<*i, j*>)
= ((
Den ((
In ((the
connectives of B
. (n
+ 5)),the
carrier' of B)),A1))
.
<*i, j*>) by
A14
.= (i
div j) by
A18,
A3;
end;
(n
+ 6)
>= 4 by
NAT_1: 12;
hence ((
Den ((
In ((the
connectives of S
. (n
+ 6)),the
carrier' of S)),A))
.
<*i, j*>)
= ((
Den ((
In ((the
connectives of B
. (n
+ 6)),the
carrier' of B)),A1))
.
<*i, j*>) by
A14
.= (
IFGT (i,j,
FALSE ,
TRUE )) by
A3;
end;
theorem ::
AOFA_A00:64
Th59: for n,m be
Nat, s,r be
set st n
>= 1 & m
>= 1 holds for B be m
-connectives non
empty non
void
BoolSignature holds for A1 be
non-empty
MSAlgebra over B holds for C be non
empty non
void
ConnectivesSignature st C is n, s, r
-array holds for A2 be
non-empty
MSAlgebra over C st the
Sorts of A1
tolerates the
Sorts of A2 & A2 is n, s, r
-array holds for S be non
empty non
void
BoolSignature st the BoolSignature of S
= (B
+* C) holds for A be
non-empty
MSAlgebra over S st A
= ((B,A1)
+* A2) holds A is (m
+ n), s, r
-array
proof
let n,m be
Nat;
let s,r be
set;
assume
A1: n
>= 1 & m
>= 1;
let B be m
-connectives non
empty non
void
BoolSignature;
let A1 be
non-empty
MSAlgebra over B;
let C be non
empty non
void
ConnectivesSignature;
assume
A2: C is n, s, r
-array;
then
A3: (
len the
connectives of C)
>= (n
+ 3) & ex J,K,L be
Element of C st L
= s & K
= r & J
<> L & J
<> K & (the
connectives of C
. n)
is_of_type (
<*J, K*>,L) & (the
connectives of C
. (n
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of C
. (n
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of C
. (n
+ 3))
is_of_type (
<*K, L*>,J);
let A2 be
non-empty
MSAlgebra over C;
assume
A4: the
Sorts of A1
tolerates the
Sorts of A2;
given J,K be
Element of C such that
A5: K
= s & (the
connectives of C
. n)
is_of_type (
<*J, r*>,K) & (the
Sorts of A2
. J)
= ((the
Sorts of A2
. K)
^omega ) & (the
Sorts of A2
. r)
=
INT & (for a be
0
-based
finite
array of (the
Sorts of A2
. K) holds (for i be
Integer st i
in (
dom a) holds ((
Den ((the
connectives of C
/. n),A2))
.
<*a, i*>)
= (a
. i) & for x be
Element of A2, K holds ((
Den ((the
connectives of C
/. (n
+ 1)),A2))
.
<*a, i, x*>)
= (a
+* (i,x))) & ((
Den ((the
connectives of C
/. (n
+ 2)),A2))
.
<*a*>)
= (
card a)) & for i be
Integer, x be
Element of A2, K st i
>=
0 holds ((
Den ((the
connectives of C
/. (n
+ 3)),A2))
.
<*i, x*>)
= ((
Segm i)
--> x);
let S be non
empty non
void
BoolSignature;
assume
A6: the BoolSignature of S
= (B
+* C);
set k = K;
the
carrier of S
= (the
carrier of B
\/ the
carrier of C) by
A6,
Th51;
then
reconsider J, K as
Element of S by
XBOOLE_0:def 3;
reconsider k0 = K as
Element of (B
+* C) by
A6;
let A be
non-empty
MSAlgebra over S;
assume
A7: A
= ((B,A1)
+* A2);
take J, K;
thus K
= s by
A5;
A8: (
len the
connectives of B)
= m by
Def29;
A9: the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
A6,
Def52;
A10: (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2;
A11: r
in (
dom the
Sorts of A2) by
A5,
FUNCT_1:def 2;
reconsider R = r as
Element of C by
A10,
A5,
FUNCT_1:def 2;
A12: the
Arity of S
= (the
Arity of B
+* the
Arity of C) by
A6,
Th51;
n
>
0 by
A1;
then
A13: (B
+* C) is (m
+ n), s, r
-array by
A2,
Th53;
then
A14: (
len the
connectives of (B
+* C))
>= ((m
+ n)
+ 3);
consider J0,K0,L0 be
Element of (B
+* C) such that
A15: L0
= s & K0
= r & J0
<> L0 & J0
<> K0 & (the
connectives of (B
+* C)
. (m
+ n))
is_of_type (
<*J0, K0*>,L0) & (the
connectives of (B
+* C)
. ((m
+ n)
+ 1))
is_of_type (
<*J0, K0, L0*>,J0) and (the
connectives of (B
+* C)
. ((m
+ n)
+ 2))
is_of_type (
<*J0*>,K0) & (the
connectives of (B
+* C)
. ((m
+ n)
+ 3))
is_of_type (
<*K0, L0*>,J0) by
A13;
A16: the
Sorts of A
= (the
Sorts of A1
+* the
Sorts of A2) & the
Charact of A
= (the
Charact of A1
+* the
Charact of A2) by
A4,
A7,
CIRCCOMB:def 4;
(m
+ n)
<= ((m
+ n)
+ 3) & n
<= (n
+ 3) by
NAT_1: 11;
then 1
<= (m
+ n) & (m
+ n)
<= (
len the
connectives of S) & 1
<= n & n
<= (
len the
connectives of C) by
A1,
A6,
A3,
A14,
NAT_1: 12,
XXREAL_0: 2;
then
A17: (m
+ n)
in (
dom the
connectives of S) & n
in (
dom the
connectives of C) & (
dom the
Sorts of A2)
= the
carrier of C & (
dom the
Arity of C)
= the
carrier' of C by
PARTFUN1:def 2,
FINSEQ_3: 25;
then
A18: (the
connectives of S
/. (m
+ n))
= (the
connectives of S
. (m
+ n)) & (the
connectives of C
/. n)
= (the
connectives of C
. n) & (the
connectives of C
. n)
= (the
connectives of S
. (m
+ n)) by
A9,
A8,
PARTFUN1:def 6,
FINSEQ_1:def 7;
(the
Arity of S
. (the
connectives of S
. (m
+ n)))
= (the
Arity of C
. (the
connectives of C
. n)) by
A12,
A18,
A17,
FUNCT_4: 13;
then
<*J0, r*>
= (the
Arity of C
. (the
connectives of C
. n)) by
A6,
A15
.=
<*J, r*> by
A5;
then J0
= (
<*J, r*>
. 1) by
FINSEQ_1: 44
.= J by
FINSEQ_1: 44;
then (the
connectives of (B
+* C)
. (m
+ n))
is_of_type (
<*J, r*>,k0) & the ManySortedSign of S
= the ManySortedSign of (B
+* C) by
A6,
A15,
A5;
hence (the
connectives of S
. (m
+ n))
is_of_type (
<*J, r*>,K) by
A6;
(the
Sorts of A
. K)
= (the
Sorts of A2
. K) & (the
Sorts of A
. r)
= (the
Sorts of A2
. r) & (the
Sorts of A
. J)
= (the
Sorts of A2
. J) by
A10,
A11,
A16,
FUNCT_4: 13;
hence (the
Sorts of A
. J)
= ((the
Sorts of A
. K)
^omega ) & (the
Sorts of A
. r)
=
INT by
A5;
hereby
let a be
0
-based
finite
array of (the
Sorts of A
. K);
hereby
let i be
Integer;
assume
A19: i
in (
dom a);
(the
connectives of C
. n)
in the
carrier' of C & (
dom the
Charact of A2)
= the
carrier' of C & (
dom the
Sorts of A2)
= the
carrier of C by
A18,
PARTFUN1:def 2;
then (the
Charact of A2
. (the
connectives of C
/. n))
= (the
Charact of A
. (the
connectives of S
/. (m
+ n))) & (the
Sorts of A2
. s)
= (the
Sorts of A
. s) by
A5,
A16,
A18,
FUNCT_4: 13;
hence ((
Den ((the
connectives of S
/. (m
+ n)),A))
.
<*a, i*>)
= (a
. i) by
A19,
A5;
let x be
Element of A, K;
((m
+ n)
+ 1)
<= (((m
+ n)
+ 1)
+ 2) & (n
+ 1)
<= ((n
+ 1)
+ 2) by
NAT_1: 11;
then 1
<= ((m
+ n)
+ 1) & ((m
+ n)
+ 1)
<= (
len the
connectives of S) & 1
<= (n
+ 1) & (n
+ 1)
<= (
len the
connectives of C) by
A6,
A3,
A14,
NAT_1: 12,
XXREAL_0: 2;
then
A20: ((m
+ n)
+ 1)
in (
dom the
connectives of S) & (n
+ 1)
in (
dom the
connectives of C) & (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2,
FINSEQ_3: 25;
A21: (the
connectives of S
/. ((m
+ n)
+ 1))
= (the
connectives of S
. ((m
+ n)
+ 1)) & (the
connectives of C
/. (n
+ 1))
= (the
connectives of C
. (n
+ 1)) & (the
connectives of C
. (n
+ 1))
= (the
connectives of S
. (m
+ (n
+ 1))) by
A9,
A8,
A20,
PARTFUN1:def 6,
FINSEQ_1:def 7;
then (the
connectives of C
. (n
+ 1))
in the
carrier' of C & (
dom the
Charact of A2)
= the
carrier' of C & (m
+ (n
+ 1))
= ((m
+ n)
+ 1) & (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2;
then (the
Charact of A2
. (the
connectives of C
/. (n
+ 1)))
= (the
Charact of A
. (the
connectives of S
/. ((m
+ n)
+ 1))) & (the
Sorts of A2
. k)
= (the
Sorts of A
. k0) by
A16,
A21,
FUNCT_4: 13;
hence ((
Den ((the
connectives of S
/. ((m
+ n)
+ 1)),A))
.
<*a, i, x*>)
= (a
+* (i,x)) by
A5,
A19;
end;
((m
+ n)
+ 2)
<= (((m
+ n)
+ 2)
+ 1) & ((m
+ n)
+ 3)
<= (
len the
connectives of S) & ((n
+ 2)
+ 1)
>= (n
+ 2) & (n
+ 3)
<= (
len the
connectives of C) by
A13,
A2,
A6,
NAT_1: 11;
then 1
<= ((m
+ n)
+ 2) & ((m
+ n)
+ 2)
<= (
len the
connectives of S) & 1
<= (n
+ 2) & (n
+ 2)
<= (
len the
connectives of C) by
XXREAL_0: 2,
NAT_1: 12;
then
A22: ((m
+ n)
+ 2)
in (
dom the
connectives of S) & (n
+ 2)
in (
dom the
connectives of C) & (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2,
FINSEQ_3: 25;
A23: (the
connectives of S
/. ((m
+ n)
+ 2))
= (the
connectives of S
. ((m
+ n)
+ 2)) & (the
connectives of C
/. (n
+ 2))
= (the
connectives of C
. (n
+ 2)) & (the
connectives of C
. (n
+ 2))
= (the
connectives of S
. (m
+ (n
+ 2))) by
A9,
A8,
A22,
PARTFUN1:def 6,
FINSEQ_1:def 7;
then (the
connectives of C
. (n
+ 2))
in the
carrier' of C & (
dom the
Charact of A2)
= the
carrier' of C & (m
+ (n
+ 2))
= ((m
+ n)
+ 2) & (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2;
then (the
Charact of A2
. (the
connectives of C
/. (n
+ 2)))
= (the
Charact of A
. (the
connectives of S
/. ((m
+ n)
+ 2))) & (the
Sorts of A2
. k)
= (the
Sorts of A
. k0) by
A16,
A23,
FUNCT_4: 13;
hence ((
Den ((the
connectives of S
/. ((m
+ n)
+ 2)),A))
.
<*a*>)
= (
card a) by
A5;
end;
let i be
Integer;
let x be
Element of A, K;
assume
A24: i
>=
0 ;
1
<= ((m
+ n)
+ 3) & ((m
+ n)
+ 3)
<= (
len the
connectives of S) & 1
<= (n
+ 3) & (n
+ 3)
<= (
len the
connectives of C) by
A2,
A6,
A13,
NAT_1: 12;
then
A25: ((m
+ n)
+ 3)
in (
dom the
connectives of S) & (n
+ 3)
in (
dom the
connectives of C) & (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2,
FINSEQ_3: 25;
A26: (the
connectives of S
/. ((m
+ n)
+ 3))
= (the
connectives of S
. ((m
+ n)
+ 3)) & (the
connectives of C
/. (n
+ 3))
= (the
connectives of C
. (n
+ 3)) & (the
connectives of C
. (n
+ 3))
= (the
connectives of S
. (m
+ (n
+ 3))) by
A9,
A8,
A25,
PARTFUN1:def 6,
FINSEQ_1:def 7;
then (the
connectives of C
. (n
+ 3))
in the
carrier' of C & (
dom the
Charact of A2)
= the
carrier' of C & (m
+ (n
+ 3))
= ((m
+ n)
+ 3) & (
dom the
Sorts of A2)
= the
carrier of C by
PARTFUN1:def 2;
then (the
Charact of A2
. (the
connectives of C
/. (n
+ 3)))
= (the
Charact of A
. (the
connectives of S
/. ((m
+ n)
+ 3))) & (the
Sorts of A2
. k)
= (the
Sorts of A
. k0) by
A16,
A26,
FUNCT_4: 13;
hence ((
Den ((the
connectives of S
/. ((m
+ n)
+ 3)),A))
.
<*i, x*>)
= ((
Segm i)
--> x) by
A5,
A24;
end;
theorem ::
AOFA_A00:65
Th60: for n be
Nat, s be
set holds for S1,S2 be
BoolSignature st the
bool-sort of S1
= the
bool-sort of S2 & (
len the
connectives of S2)
>= 3 & for i st i
>= 1 & i
<= 3 holds (the
Arity of S1
. (the
connectives of S1
. i))
= (the
Arity of S2
. (the
connectives of S2
. i)) & (the
ResultSort of S1
. (the
connectives of S1
. i))
= (the
ResultSort of S2
. (the
connectives of S2
. i)) holds S1 is
bool-correct implies S2 is
bool-correct
proof
let n be
Nat;
let s be
set;
let S1,S2 be
BoolSignature;
assume
A1: the
bool-sort of S1
= the
bool-sort of S2;
assume
A2: (
len the
connectives of S2)
>= 3;
assume
A3: for i st i
>= 1 & i
<= 3 holds (the
Arity of S1
. (the
connectives of S1
. i))
= (the
Arity of S2
. (the
connectives of S2
. i)) & (the
ResultSort of S1
. (the
connectives of S1
. i))
= (the
ResultSort of S2
. (the
connectives of S2
. i));
set B = S1;
assume
A4: (
len the
connectives of B)
>= 3 & (the
connectives of B
. 1)
is_of_type (
{} ,the
bool-sort of B) & (the
connectives of B
. 2)
is_of_type (
<*the
bool-sort of B*>,the
bool-sort of B) & (the
connectives of B
. 3)
is_of_type (
<*the
bool-sort of B, the
bool-sort of B*>,the
bool-sort of B);
thus (
len the
connectives of S2)
>= 3 by
A2;
thus (the
Arity of S2
. (the
connectives of S2
. 1))
= (the
Arity of S1
. (the
connectives of S1
. 1)) by
A3
.=
{} by
A4;
thus (the
ResultSort of S2
. (the
connectives of S2
. 1))
= (the
ResultSort of S1
. (the
connectives of S1
. 1)) by
A3
.= the
bool-sort of S2 by
A1,
A4;
thus (the
Arity of S2
. (the
connectives of S2
. 2))
= (the
Arity of S1
. (the
connectives of S1
. 2)) by
A3
.=
<*the
bool-sort of S2*> by
A1,
A4;
thus (the
ResultSort of S2
. (the
connectives of S2
. 2))
= (the
ResultSort of S1
. (the
connectives of S1
. 2)) by
A3
.= the
bool-sort of S2 by
A1,
A4;
thus (the
Arity of S2
. (the
connectives of S2
. 3))
= (the
Arity of S1
. (the
connectives of S1
. 3)) by
A3
.=
<*the
bool-sort of S2, the
bool-sort of S2*> by
A1,
A4;
thus (the
ResultSort of S2
. (the
connectives of S2
. 3))
= (the
ResultSort of S1
. (the
connectives of S1
. 3)) by
A3
.= the
bool-sort of S2 by
A1,
A4;
end;
theorem ::
AOFA_A00:66
Th61: for n be
Nat, s be
set holds for S1,S2 be non
empty
BoolSignature st n
>= 1 & the
bool-sort of S1
= the
bool-sort of S2 & (
len the
connectives of S2)
>= (n
+ 6) & (the
connectives of S2
. n)
<> (the
connectives of S2
. (n
+ 1)) & (the
connectives of S2
. (n
+ 3))
<> (the
connectives of S2
. (n
+ 4)) & (the
connectives of S2
. (n
+ 3))
<> (the
connectives of S2
. (n
+ 5)) & (the
connectives of S2
. (n
+ 4))
<> (the
connectives of S2
. (n
+ 5)) & for i st i
>= n & i
<= (n
+ 6) holds (the
Arity of S1
. (the
connectives of S1
. i))
= (the
Arity of S2
. (the
connectives of S2
. i)) & (the
ResultSort of S1
. (the
connectives of S1
. i))
= (the
ResultSort of S2
. (the
connectives of S2
. i)) holds S1 is n, s
integer implies S2 is n, s
integer
proof
let n be
Nat;
let s be
set;
let S1,S2 be non
empty
BoolSignature;
assume
A1: n
>= 1 & the
bool-sort of S1
= the
bool-sort of S2;
assume
A2: (
len the
connectives of S2)
>= (n
+ 6);
assume
A3: (the
connectives of S2
. n)
<> (the
connectives of S2
. (n
+ 1)) & (the
connectives of S2
. (n
+ 3))
<> (the
connectives of S2
. (n
+ 4)) & (the
connectives of S2
. (n
+ 3))
<> (the
connectives of S2
. (n
+ 5)) & (the
connectives of S2
. (n
+ 4))
<> (the
connectives of S2
. (n
+ 5));
assume
A4: for i st i
>= n & i
<= (n
+ 6) holds (the
Arity of S1
. (the
connectives of S1
. i))
= (the
Arity of S2
. (the
connectives of S2
. i)) & (the
ResultSort of S1
. (the
connectives of S1
. i))
= (the
ResultSort of S2
. (the
connectives of S2
. i));
assume (
len the
connectives of S1)
>= (n
+ 6);
given I be
Element of S1 such that
A5: I
= s & I
<> the
bool-sort of S1 & (the
connectives of S1
. n)
is_of_type (
{} ,I) & (the
connectives of S1
. (n
+ 1))
is_of_type (
{} ,I) & (the
connectives of S1
. n)
<> (the
connectives of S1
. (n
+ 1)) & (the
connectives of S1
. (n
+ 2))
is_of_type (
<*I*>,I) & (the
connectives of S1
. (n
+ 3))
is_of_type (
<*I, I*>,I) & (the
connectives of S1
. (n
+ 4))
is_of_type (
<*I, I*>,I) & (the
connectives of S1
. (n
+ 5))
is_of_type (
<*I, I*>,I) & (the
connectives of S1
. (n
+ 3))
<> (the
connectives of S1
. (n
+ 4)) & (the
connectives of S1
. (n
+ 3))
<> (the
connectives of S1
. (n
+ 5)) & (the
connectives of S1
. (n
+ 4))
<> (the
connectives of S1
. (n
+ 5)) & (the
connectives of S1
. (n
+ 6))
is_of_type (
<*I, I*>,the
bool-sort of S1);
thus (
len the
connectives of S2)
>= (n
+ 6) by
A2;
A6: n
<= (n
+ 6) by
NAT_1: 11;
then n
<= (
len the
connectives of S2) by
A2,
XXREAL_0: 2;
then
A7: n
in (
dom the
connectives of S2) by
A1,
FINSEQ_3: 25;
A8: (the
ResultSort of S2
. (the
connectives of S2
. n))
= (the
ResultSort of S1
. (the
connectives of S1
. n)) by
A4,
A6
.= I by
A5;
reconsider J = I as
Element of S2 by
A8,
A7,
FUNCT_2: 5,
FUNCT_1: 102;
take J;
thus J
= s & J
<> the
bool-sort of S2 by
A1,
A5;
thus (the
Arity of S2
. (the
connectives of S2
. n))
= (the
Arity of S1
. (the
connectives of S1
. n)) by
A4,
A6
.=
{} by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. n))
= (the
ResultSort of S1
. (the
connectives of S1
. n)) by
A4,
A6
.= J by
A5;
A9: (n
+
0 )
<= (n
+ 1) & (n
+ 1)
<= (n
+ 6) by
XREAL_1: 6;
hence (the
Arity of S2
. (the
connectives of S2
. (n
+ 1)))
= (the
Arity of S1
. (the
connectives of S1
. (n
+ 1))) by
A4
.=
{} by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. (n
+ 1)))
= (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 1))) by
A4,
A9
.= J by
A5;
thus (the
connectives of S2
. n)
<> (the
connectives of S2
. (n
+ 1)) by
A3;
A10: (n
+
0 )
<= (n
+ 2) & (n
+ 2)
<= (n
+ 6) by
XREAL_1: 6;
hence (the
Arity of S2
. (the
connectives of S2
. (n
+ 2)))
= (the
Arity of S1
. (the
connectives of S1
. (n
+ 2))) by
A4
.=
<*J*> by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. (n
+ 2)))
= (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 2))) by
A4,
A10
.= J by
A5;
A11: (n
+
0 )
<= (n
+ 3) & (n
+ 3)
<= (n
+ 6) by
XREAL_1: 6;
hence (the
Arity of S2
. (the
connectives of S2
. (n
+ 3)))
= (the
Arity of S1
. (the
connectives of S1
. (n
+ 3))) by
A4
.=
<*J, J*> by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. (n
+ 3)))
= (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 3))) by
A4,
A11
.= J by
A5;
A12: (n
+
0 )
<= (n
+ 4) & (n
+ 4)
<= (n
+ 6) by
XREAL_1: 6;
hence (the
Arity of S2
. (the
connectives of S2
. (n
+ 4)))
= (the
Arity of S1
. (the
connectives of S1
. (n
+ 4))) by
A4
.=
<*J, J*> by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. (n
+ 4)))
= (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 4))) by
A4,
A12
.= J by
A5;
A13: (n
+
0 )
<= (n
+ 5) & (n
+ 5)
<= (n
+ 6) by
XREAL_1: 6;
hence (the
Arity of S2
. (the
connectives of S2
. (n
+ 5)))
= (the
Arity of S1
. (the
connectives of S1
. (n
+ 5))) by
A4
.=
<*J, J*> by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. (n
+ 5)))
= (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 5))) by
A4,
A13
.= J by
A5;
thus (the
connectives of S2
. (n
+ 3))
<> (the
connectives of S2
. (n
+ 4)) by
A3;
thus (the
connectives of S2
. (n
+ 3))
<> (the
connectives of S2
. (n
+ 5)) by
A3;
thus (the
connectives of S2
. (n
+ 4))
<> (the
connectives of S2
. (n
+ 5)) by
A3;
A14: (n
+
0 )
<= (n
+ 6) by
XREAL_1: 6;
hence (the
Arity of S2
. (the
connectives of S2
. (n
+ 6)))
= (the
Arity of S1
. (the
connectives of S1
. (n
+ 6))) by
A4
.=
<*J, J*> by
A5;
thus (the
ResultSort of S2
. (the
connectives of S2
. (n
+ 6)))
= (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 6))) by
A4,
A14
.= the
bool-sort of S2 by
A1,
A5;
end;
theorem ::
AOFA_A00:67
Th62: for n,m be
Nat, s,r be
set holds for S1,S2 be non
empty
ConnectivesSignature st 1
<= n & (
len the
connectives of S1)
>= (n
+ 3) & for i st i
>= n & i
<= (n
+ 3) holds (the
Arity of S1
. (the
connectives of S1
. i))
= (the
Arity of S2
. (the
connectives of S2
. (i
+ m))) & (the
ResultSort of S1
. (the
connectives of S1
. i))
= (the
ResultSort of S2
. (the
connectives of S2
. (i
+ m))) holds S2 is (n
+ m), s, r
-array implies S1 is n, s, r
-array
proof
let n,m be
Nat;
let s,r be
set;
let S1,S2 be non
empty
ConnectivesSignature;
assume
A1: 1
<= n;
assume
A2: (
len the
connectives of S1)
>= (n
+ 3);
assume
A3: for i st i
>= n & i
<= (n
+ 3) holds (the
Arity of S1
. (the
connectives of S1
. i))
= (the
Arity of S2
. (the
connectives of S2
. (i
+ m))) & (the
ResultSort of S1
. (the
connectives of S1
. i))
= (the
ResultSort of S2
. (the
connectives of S2
. (i
+ m)));
assume (
len the
connectives of S2)
>= ((n
+ m)
+ 3);
given J,K,L be
Element of S2 such that
A4: L
= s & K
= r & J
<> L & J
<> K & (the
connectives of S2
. (n
+ m))
is_of_type (
<*J, K*>,L) & (the
connectives of S2
. ((n
+ m)
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of S2
. ((n
+ m)
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of S2
. ((n
+ m)
+ 3))
is_of_type (
<*K, L*>,J);
thus (
len the
connectives of S1)
>= (n
+ 3) by
A2;
A5: n
<= (n
+ 3) by
NAT_1: 11;
then (the
Arity of S1
. (the
connectives of S1
. n))
= (the
Arity of S2
. (the
connectives of S2
. (n
+ m))) & (the
ResultSort of S1
. (the
connectives of S1
. n))
= (the
ResultSort of S2
. (the
connectives of S2
. (n
+ m))) by
A3;
then
A6: (the
Arity of S1
. (the
connectives of S1
. n))
=
<*J, K*> & (the
ResultSort of S1
. (the
connectives of S1
. n))
= L by
A4;
A7: n
<= (n
+ 1) & (n
+ 1)
<= ((n
+ 1)
+ 2) & (n
+ 3)
= ((n
+ 1)
+ 2) by
NAT_1: 11;
then (the
Arity of S1
. (the
connectives of S1
. (n
+ 1)))
= (the
Arity of S2
. (the
connectives of S2
. ((n
+ 1)
+ m))) & (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 1)))
= (the
ResultSort of S2
. (the
connectives of S2
. ((n
+ 1)
+ m))) by
A3;
then
A8: (the
Arity of S1
. (the
connectives of S1
. (n
+ 1)))
=
<*J, K, L*> & (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 1)))
= J by
A4;
A9: (n
+ 2)
<= ((n
+ 2)
+ 1) & n
<= (n
+ 2) by
NAT_1: 11;
then (the
Arity of S1
. (the
connectives of S1
. (n
+ 2)))
= (the
Arity of S2
. (the
connectives of S2
. ((n
+ 2)
+ m))) & (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 2)))
= (the
ResultSort of S2
. (the
connectives of S2
. ((n
+ 2)
+ m))) by
A3;
then
A10: (the
Arity of S1
. (the
connectives of S1
. (n
+ 2)))
=
<*J*> & (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 2)))
= K by
A4;
n
<= (n
+ 3) by
NAT_1: 11;
then (the
Arity of S1
. (the
connectives of S1
. (n
+ 3)))
= (the
Arity of S2
. (the
connectives of S2
. ((n
+ 3)
+ m))) & (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 3)))
= (the
ResultSort of S2
. (the
connectives of S2
. ((n
+ 3)
+ m))) by
A3;
then
A11: (the
Arity of S1
. (the
connectives of S1
. (n
+ 3)))
=
<*K, L*> & (the
ResultSort of S1
. (the
connectives of S1
. (n
+ 3)))
= J by
A4;
n
<= (
len the
connectives of S1) & 1
<= (n
+ 1) & 1
<= ((n
+ 1)
+ 1) & (n
+ 1)
<= (
len the
connectives of S1) & (n
+ 2)
<= (
len the
connectives of S1) & 1
<= (n
+ 3) by
A2,
A5,
A7,
A9,
XXREAL_0: 2,
NAT_1: 11;
then n
in (
dom the
connectives of S1) & (n
+ 1)
in (
dom the
connectives of S1) & (n
+ 2)
in (
dom the
connectives of S1) by
A1,
FINSEQ_3: 25;
then
reconsider J, K, L as
Element of S1 by
A6,
A8,
A10,
FUNCT_1: 102,
FUNCT_2: 5;
take J, K, L;
thus L
= s & K
= r & J
<> L & J
<> K by
A4;
thus thesis by
A6,
A8,
A10,
A11;
end;
theorem ::
AOFA_A00:68
Th63: for j,k be
set, i,m,n be
Nat st m
>= 4 & (m
+ 6)
<= n & i
>= 1 holds for S be
1-1-connectives
bool-correct non
empty non
void
BoolSignature st S is (n
+ i), j, k
-arraym, k
integer holds ex B be
bool-correct non
empty non
void
BoolSignature, C be non
empty non
void
ConnectivesSignature st the BoolSignature of S
= (B
+* C) & B is n
-connectivesm, 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)
proof
let j,k be
set;
let i,m,n be
Nat;
assume
A1: m
>= 4;
assume
A2: (m
+ 6)
<= n & i
>= 1;
let S be
1-1-connectives
bool-correct non
empty non
void
BoolSignature;
assume
A3: (
len the
connectives of S)
>= ((n
+ i)
+ 3);
given J,K,L be
Element of S such that
A4: L
= j & K
= k & J
<> L & J
<> K & (the
connectives of S
. (n
+ i))
is_of_type (
<*J, K*>,L) & (the
connectives of S
. ((n
+ i)
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of S
. ((n
+ i)
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of S
. ((n
+ i)
+ 3))
is_of_type (
<*K, L*>,J);
A5: S is (i
+ n), j, k
-array by
A3,
A4;
assume
A6: (
len the
connectives of S)
>= (m
+ 6);
given I be
Element of S such that
A7: I
= k & I
<> the
bool-sort of S & (the
connectives of S
. m)
is_of_type (
{} ,I) & (the
connectives of S
. (m
+ 1))
is_of_type (
{} ,I) & (the
connectives of S
. m)
<> (the
connectives of S
. (m
+ 1)) & (the
connectives of S
. (m
+ 2))
is_of_type (
<*I*>,I) & (the
connectives of S
. (m
+ 3))
is_of_type (
<*I, I*>,I) & (the
connectives of S
. (m
+ 4))
is_of_type (
<*I, I*>,I) & (the
connectives of S
. (m
+ 5))
is_of_type (
<*I, I*>,I) & (the
connectives of S
. (m
+ 3))
<> (the
connectives of S
. (m
+ 4)) & (the
connectives of S
. (m
+ 3))
<> (the
connectives of S
. (m
+ 5)) & (the
connectives of S
. (m
+ 4))
<> (the
connectives of S
. (m
+ 5)) & (the
connectives of S
. (m
+ 6))
is_of_type (
<*I, I*>,the
bool-sort of S);
A8: S is m, k
integer by
A6,
A7;
set r = (the
connectives of S
/^ n);
set W = (
rng r);
A9: ((n
+ i)
+ 3)
= (n
+ (i
+ 3)) & n
<= (n
+ (i
+ 3)) by
NAT_1: 12;
then
A10: (
len the
connectives of S)
>= n by
A3,
XXREAL_0: 2;
then (
len r)
= ((
len the
connectives of S)
- n) by
RFINSEQ:def 1;
then
A11: (
len r)
>= ((n
+ (i
+ 3))
- n) by
A3,
XREAL_1: 9;
then (
len r)
>= (i
+ 3) & ((i
+ 1)
+ 2)
>= 2 by
NAT_1: 11;
then (
len r)
>= 2 by
XXREAL_0: 2;
then r
<>
{} ;
then
reconsider W as non
empty
set;
set O = (the
carrier' of S
\ W);
m
<= (m
+ 6) by
NAT_1: 11;
then m
<= n by
A2,
XXREAL_0: 2;
then
A12: 4
<= n by
A1,
XXREAL_0: 2;
then
A13: 1
<= n & 1
<= m by
A1,
XXREAL_0: 2;
n
<= (n
+ (i
+ 3)) by
NAT_1: 11;
then 1
<= ((n
+ i)
+ 3) by
A13,
XXREAL_0: 2;
then 1
<= (
len the
connectives of S) by
A3,
XXREAL_0: 2;
then
A14: 1
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A15: (the
connectives of S
. 1)
in the
carrier' of S by
FUNCT_1: 102;
now
assume (the
connectives of S
. 1)
in W;
then
consider x be
object such that
A16: x
in (
dom r) & (the
connectives of S
. 1)
= (r
. x) by
FUNCT_1:def 3;
reconsider x as
Nat by
A16;
(r
. x)
= (the
connectives of S
. (x
+ n)) & (n
+ x)
in (
dom the
connectives of S) by
A10,
A16,
RFINSEQ:def 1,
FINSEQ_5: 26;
then 1
= (n
+ x) & n
= (n
+
0 ) by
A14,
A16,
FUNCT_1:def 4;
then x
=
0 by
A13,
XREAL_1: 6,
NAT_1: 3;
hence contradiction by
A16,
FINSEQ_3: 24;
end;
then
reconsider O as non
empty
set by
A15,
XBOOLE_0:def 5;
A17: W
c= the
carrier' of S by
FINSEQ_1:def 4;
reconsider A = (the
Arity of S
| O) as
Function of O, (the
carrier of S
* ) by
FUNCT_2: 32;
reconsider Ac = (the
Arity of S
| W) as
Function of W, (the
carrier of S
* ) by
A17,
FUNCT_2: 32;
reconsider R = (the
ResultSort of S
| O) as
Function of O, the
carrier of S by
FUNCT_2: 32;
reconsider Rc = (the
ResultSort of S
| W) as
Function of W, the
carrier of S by
A17,
FUNCT_2: 32;
set s = the
bool-sort of S;
set p = (the
connectives of S
| n);
(
rng p)
c= O
proof
let x be
object;
assume x
in (
rng p);
then
consider y be
object such that
A18: y
in (
dom p) & x
= (p
. y) by
FUNCT_1:def 3;
A19: x
in the
carrier' of S by
A18,
FUNCT_1: 102;
assume x
nin O;
then x
in W by
A19,
XBOOLE_0:def 5;
then
consider z be
object such that
A20: z
in (
dom r) & x
= (r
. z) by
FUNCT_1:def 3;
reconsider y as
Nat by
A18;
reconsider z as
Nat by
A20;
A21: y
in (
dom the
connectives of S) & x
= (the
connectives of S
. y) by
A18,
RELAT_1: 57,
FUNCT_1: 47;
y
<= (
len p) & (
len p)
<= n by
A18,
FINSEQ_3: 25,
FINSEQ_5: 17;
then
A22: y
<= n by
XXREAL_0: 2;
(r
. z)
= (the
connectives of S
. (z
+ n)) & (n
+ z)
in (
dom the
connectives of S) by
A10,
A20,
RFINSEQ:def 1,
FINSEQ_5: 26;
then y
= (n
+ z) & n
= (n
+
0 ) by
A21,
A20,
FUNCT_1:def 4;
then z
=
0 by
A22,
XREAL_1: 6,
NAT_1: 3;
hence contradiction by
A20,
FINSEQ_3: 24;
end;
then
reconsider c = p as
FinSequence of O by
FINSEQ_1:def 4;
reconsider cc = r as
FinSequence of W by
FINSEQ_1:def 4;
set B =
BoolSignature (# the
carrier of S, O, A, R, s, c #);
set C =
ConnectivesSignature (# the
carrier of S, W, Ac, Rc, cc #);
now
5
<= ((m
+ 1)
+ 5) by
NAT_1: 11;
then 3
<= (m
+ 6) by
XXREAL_0: 2;
hence (
len the
connectives of S)
>= 3 by
A6,
XXREAL_0: 2;
n
<= (n
+ (i
+ 3)) by
NAT_1: 11;
then (
len the
connectives of B)
= n by
FINSEQ_1: 59,
A3,
XXREAL_0: 2;
hence
A23: (
len the
connectives of B)
>= 3 by
A12,
XXREAL_0: 2;
let z be
Nat;
assume
A24: z
>= 1 & z
<= 3;
then z
<= (
len the
connectives of B) by
A23,
XXREAL_0: 2;
then z
in (
dom the
connectives of B) by
A24,
FINSEQ_3: 25;
then
A25: (the
connectives of B
. z)
in O & (the
connectives of B
. z)
= (the
connectives of S
. z) by
FUNCT_1: 47,
FUNCT_1: 102;
thus (the
Arity of S
. (the
connectives of S
. z))
= (the
Arity of B
. (the
connectives of B
. z)) by
A25,
FUNCT_1: 49;
thus (the
ResultSort of S
. (the
connectives of S
. z))
= (the
ResultSort of B
. (the
connectives of B
. z)) by
A25,
FUNCT_1: 49;
end;
then
reconsider B as
bool-correct non
empty non
void
BoolSignature by
Th60;
reconsider C as non
empty non
void
ConnectivesSignature;
take B, C;
A26: the
carrier of S
= (the
carrier of B
\/ the
carrier of C);
A27: the
carrier' of S
= (the
carrier' of B
\/ the
carrier' of C) by
FINSEQ_1:def 4,
XBOOLE_1: 45;
(
dom the
Arity of S)
= the
carrier' of S by
FUNCT_2:def 1;
then
A28: the
Arity of S
= (the
Arity of B
+* the
Arity of C) by
A27,
FUNCT_4: 70;
(
dom the
ResultSort of S)
= the
carrier' of S by
FUNCT_2:def 1;
then the
ResultSort of S
= (the
ResultSort of B
+* the
ResultSort of C) by
A27,
FUNCT_4: 70;
then
A29: the ManySortedSign of S
= (B qua non
empty
ManySortedSign
+* C) by
A26,
A27,
A28,
CIRCCOMB:def 2;
the
connectives of S
= (c
^ cc) by
RFINSEQ: 8;
hence the BoolSignature of S
= (B
+* C) by
A29,
Def52;
thus
A30: (
len the
connectives of B)
= n by
A9,
A3,
XXREAL_0: 2,
FINSEQ_1: 59;
now
thus 1
<= m & the
bool-sort of B
= the
bool-sort of S by
A1,
XXREAL_0: 2;
thus (
len the
connectives of B)
>= (m
+ 6) by
A2,
A9,
A3,
XXREAL_0: 2,
FINSEQ_1: 59;
m
<= (m
+ 6) & (m
+ 1)
<= ((m
+ 1)
+ 5) by
NAT_1: 11;
then m
>= 1 & m
<= (
len the
connectives of B) & (m
+ 1)
>= 1 & (m
+ 1)
<= (
len the
connectives of B) by
A1,
A2,
A30,
XXREAL_0: 2,
NAT_1: 11;
then m
in (
dom the
connectives of B) & (m
+ 1)
in (
dom the
connectives of B) by
FINSEQ_3: 25;
then (the
connectives of B
. m)
= (the
connectives of S
. m) & (the
connectives of B
. (m
+ 1))
= (the
connectives of S
. (m
+ 1)) by
FUNCT_1: 47;
hence (the
connectives of B
. m)
<> (the
connectives of B
. (m
+ 1)) by
A7;
(m
+ 3)
<= ((m
+ 3)
+ 3) & (m
+ 4)
<= ((m
+ 4)
+ 2) & (m
+ 5)
<= ((m
+ 5)
+ 1) by
NAT_1: 11;
then ((m
+ 2)
+ 1)
>= 1 & (m
+ 3)
<= (
len the
connectives of B) & ((m
+ 3)
+ 1)
>= 1 & (m
+ 4)
<= (
len the
connectives of B) & ((m
+ 4)
+ 1)
>= 1 & (m
+ 5)
<= (
len the
connectives of B) by
A2,
A30,
XXREAL_0: 2,
NAT_1: 11;
then (m
+ 3)
in (
dom the
connectives of B) & (m
+ 4)
in (
dom the
connectives of B) & (m
+ 5)
in (
dom the
connectives of B) by
FINSEQ_3: 25;
then (the
connectives of B
. (m
+ 3))
= (the
connectives of S
. (m
+ 3)) & (the
connectives of B
. (m
+ 4))
= (the
connectives of S
. (m
+ 4)) & (the
connectives of B
. (m
+ 5))
= (the
connectives of S
. (m
+ 5)) by
FUNCT_1: 47;
hence (the
connectives of B
. (m
+ 3))
<> (the
connectives of B
. (m
+ 4)) & (the
connectives of B
. (m
+ 3))
<> (the
connectives of B
. (m
+ 5)) & (the
connectives of B
. (m
+ 4))
<> (the
connectives of B
. (m
+ 5)) by
A7;
let z be
Nat;
assume z
>= m & z
<= (m
+ 6);
then 1
<= z & z
<= (
len the
connectives of B) by
A2,
A30,
A13,
XXREAL_0: 2;
then z
in (
dom the
connectives of B) by
FINSEQ_3: 25;
then
A31: (the
connectives of B
. z)
in O & (the
connectives of B
. z)
= (the
connectives of S
. z) by
FUNCT_1: 47,
FUNCT_1: 102;
thus (the
Arity of S
. (the
connectives of S
. z))
= (the
Arity of B
. (the
connectives of B
. z)) by
A31,
FUNCT_1: 49;
thus (the
ResultSort of S
. (the
connectives of S
. z))
= (the
ResultSort of B
. (the
connectives of B
. z)) by
A31,
FUNCT_1: 49;
end;
hence B is m, k
integer by
A8,
Th61;
now
thus (
len the
connectives of C)
>= (i
+ 3) by
A11;
thus 1
<= i by
A2;
let z be
Nat;
assume z
>= i & z
<= (i
+ 3);
then 1
<= z & z
<= (
len r) by
A11,
A2,
XXREAL_0: 2;
then z
in (
dom r) by
FINSEQ_3: 25;
then
A32: (the
connectives of C
. z)
in W & (the
connectives of C
. z)
= (the
connectives of S
. (z
+ n)) by
A10,
FUNCT_1: 102,
RFINSEQ:def 1;
thus (the
Arity of C
. (the
connectives of C
. z))
= (the
Arity of S
. (the
connectives of S
. (z
+ n))) by
A32,
FUNCT_1: 49;
thus (the
ResultSort of C
. (the
connectives of C
. z))
= (the
ResultSort of S
. (the
connectives of S
. (z
+ n))) by
A32,
FUNCT_1: 49;
end;
hence C is i, j, k
-array by
A5,
Th62;
thus thesis;
end;
theorem ::
AOFA_A00:69
Th64: for s,I be
set holds for S be
bool-correct non
empty non
void
BoolSignature st S is 4, I
integer holds for X be non
empty
set st s
in the
carrier of S & s
<> I & s
<> the
bool-sort of S holds ex A be
bool-correct
non-empty
MSAlgebra over S st A is 4, I
integer & (the
Sorts of A
. s)
= X
proof
let s,I be
set;
let S be
bool-correct non
empty non
void
BoolSignature;
assume
A1: S is 4, I
integer;
then
consider J be
Element of S such that
A2: J
= I & J
<> the
bool-sort of S & (the
connectives of S
. 4)
is_of_type (
{} ,J) & (the
connectives of S
. (4
+ 1))
is_of_type (
{} ,J) & (the
connectives of S
. 4)
<> (the
connectives of S
. (4
+ 1)) & (the
connectives of S
. (4
+ 2))
is_of_type (
<*J*>,J) & (the
connectives of S
. (4
+ 3))
is_of_type (
<*J, J*>,J) & (the
connectives of S
. (4
+ 4))
is_of_type (
<*J, J*>,J) & (the
connectives of S
. (4
+ 5))
is_of_type (
<*J, J*>,J) & (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 (
<*J, J*>,the
bool-sort of S);
A3: (
len the
connectives of S)
>= 3 & (the
connectives of S
. 1)
is_of_type (
{} ,the
bool-sort of S) & (the
connectives of S
. 2)
is_of_type (
<*the
bool-sort of S*>,the
bool-sort of S) & (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;
let X be non
empty
set;
assume
A4: s
in the
carrier of S;
assume
A5: s
<> I;
assume
A6: s
<> the
bool-sort of S;
consider A be
bool-correct
non-empty
strict
MSAlgebra over S such that
A7: A is 4, I
integer by
A1,
Th49;
A8: (the
Sorts of A
. the
bool-sort of S)
=
BOOLEAN & ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A))
.
{} )
=
TRUE & for x,y be
boolean
object holds ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A))
.
<*x*>)
= (
'not' x) & ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A))
.
<*x, y*>)
= (x
'&' y) by
Def31;
consider K be
SortSymbol of S such that
A9: K
= I & (the
connectives of S
. 4)
is_of_type (
{} ,K) & (the
Sorts of A
. K)
=
INT & ((
Den ((
In ((the
connectives of S
. 4),the
carrier' of S)),A))
.
{} )
=
0 & ((
Den ((
In ((the
connectives of S
. (4
+ 1)),the
carrier' of S)),A))
.
{} )
= 1 & for i,j be
Integer holds ((
Den ((
In ((the
connectives of S
. (4
+ 2)),the
carrier' of S)),A))
.
<*i*>)
= (
- i) & ((
Den ((
In ((the
connectives of S
. (4
+ 3)),the
carrier' of S)),A))
.
<*i, j*>)
= (i
+ j) & ((
Den ((
In ((the
connectives of S
. (4
+ 4)),the
carrier' of S)),A))
.
<*i, j*>)
= (i
* j) & (j
<>
0 implies ((
Den ((
In ((the
connectives of S
. (4
+ 5)),the
carrier' of S)),A))
.
<*i, j*>)
= (i
div j)) & ((
Den ((
In ((the
connectives of S
. (4
+ 6)),the
carrier' of S)),A))
.
<*i, j*>)
= (
IFGT (i,j,
FALSE ,
TRUE )) by
A7;
set Q = (the
Sorts of A
+* (s,X));
set F = the
ManySortedFunction of ((Q
# )
* the
Arity of S), (Q
* the
ResultSort of S);
set Ch = (F
+* (the
Charact of A
| (the
connectives of S
.: (
Seg 10))));
(
dom the
Charact of A)
= the
carrier' of S by
PARTFUN1:def 2;
then
A10: (
dom (the
Charact of A
| (the
connectives of S
.: (
Seg 10))))
= (the
connectives of S
.: (
Seg 10)) by
Th1,
RELAT_1: 62;
reconsider Ch as
ManySortedFunction of the
carrier' of S;
Ch is
ManySortedFunction of ((Q
# )
* the
Arity of S), (Q
* the
ResultSort of S)
proof
let x be
object;
assume x
in the
carrier' of S;
then
reconsider o = x as
OperSymbol of S;
per cases ;
suppose
A11: x
in (the
connectives of S
.: (
Seg 10));
then
A12: (Ch
. x)
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. x) by
A10,
FUNCT_4: 13
.= (the
Charact of A
. x) by
A11,
FUNCT_1: 49;
A13: (((the
Sorts of A
# )
* the
Arity of S)
. o)
= ((the
Sorts of A
# )
. (the
Arity of S
. o)) & ((the
Sorts of A
* the
ResultSort of S)
. o)
= (the
Sorts of A
. (the
ResultSort of S
. o)) & (((Q
# )
* the
Arity of S)
. o)
= ((Q
# )
. (the
Arity of S
. x)) & ((Q
* the
ResultSort of S)
. o)
= (Q
. (the
ResultSort of S
. x)) by
FUNCT_2: 15;
consider y be
object such that
A14: y
in (
dom the
connectives of S) & y
in (
Seg 10) & o
= (the
connectives of S
. y) by
A11,
FUNCT_1:def 6;
per cases by
A14,
Th23,
ENUMSET1:def 8;
suppose y
= 1;
then (the
Arity of S
. o)
=
{} & (the
ResultSort of S
. o)
= the
bool-sort of S & (
<*> the
carrier of S)
in (the
carrier of S
* ) by
A3,
A14,
FINSEQ_1:def 11;
then ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
* (
<*> the
carrier of S))) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
* (
<*> the
carrier of S))) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
BOOLEAN & (Q
. (the
ResultSort of S
. o))
=
BOOLEAN by
A6,
A8,
FINSEQ_2:def 5,
FUNCT_7: 32;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13;
end;
suppose y
= 2;
then (the
Arity of S
. o)
=
<*the
bool-sort of S*> & (the
ResultSort of S
. o)
= the
bool-sort of S &
<*the
bool-sort of S*>
in (the
carrier of S
* ) by
A3,
A14,
FINSEQ_1:def 11;
then
A15: ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
*
<*the
bool-sort of S*>)) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
*
<*the
bool-sort of S*>)) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
BOOLEAN & (Q
. (the
ResultSort of S
. o))
=
BOOLEAN by
A6,
A8,
FINSEQ_2:def 5,
FUNCT_7: 32;
(
dom the
Sorts of A)
= the
carrier of S & (
dom Q)
= the
carrier of S by
PARTFUN1:def 2;
then (the
Sorts of A
*
<*the
bool-sort of S*>)
=
<*(the
Sorts of A
. the
bool-sort of S)*> & (Q
*
<*the
bool-sort of S*>)
=
<*(Q
. the
bool-sort of S)*> & (the
Sorts of A
. the
bool-sort of S)
= (Q
. the
bool-sort of S) by
A6,
FUNCT_7: 32,
FINSEQ_2: 34;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13,
A15;
end;
suppose y
= 3;
then (the
Arity of S
. o)
=
<*the
bool-sort of S, the
bool-sort of S*> & (the
ResultSort of S
. o)
= the
bool-sort of S &
<*the
bool-sort of S, the
bool-sort of S*>
in (the
carrier of S
* ) by
A3,
A14,
FINSEQ_1:def 11;
then
A16: ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
*
<*the
bool-sort of S, the
bool-sort of S*>)) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
*
<*the
bool-sort of S, the
bool-sort of S*>)) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
BOOLEAN & (Q
. (the
ResultSort of S
. o))
=
BOOLEAN by
A6,
A8,
FINSEQ_2:def 5,
FUNCT_7: 32;
(
dom the
Sorts of A)
= the
carrier of S & (
dom Q)
= the
carrier of S by
PARTFUN1:def 2;
then (the
Sorts of A
*
<*the
bool-sort of S, the
bool-sort of S*>)
=
<*(the
Sorts of A
. the
bool-sort of S), (the
Sorts of A
. the
bool-sort of S)*> & (Q
*
<*the
bool-sort of S, the
bool-sort of S*>)
=
<*(Q
. the
bool-sort of S), (Q
. the
bool-sort of S)*> & (the
Sorts of A
. the
bool-sort of S)
= (Q
. the
bool-sort of S) by
A6,
FUNCT_7: 32,
FINSEQ_2: 125;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13,
A16;
end;
suppose y
= 4 or y
= 5;
then (the
Arity of S
. o)
=
{} & (the
ResultSort of S
. o)
= J & (
<*> the
carrier of S)
in (the
carrier of S
* ) by
A2,
A14,
FINSEQ_1:def 11;
then ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
* (
<*> the
carrier of S))) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
* (
<*> the
carrier of S))) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
INT & (Q
. (the
ResultSort of S
. o))
=
INT by
A5,
A2,
A9,
FINSEQ_2:def 5,
FUNCT_7: 32;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13;
end;
suppose y
= 6;
then (the
Arity of S
. o)
=
<*J*> & (the
ResultSort of S
. o)
= J &
<*J*>
in (the
carrier of S
* ) by
A2,
A14,
FINSEQ_1:def 11;
then
A17: ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
*
<*J*>)) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
*
<*J*>)) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
INT & (Q
. (the
ResultSort of S
. o))
=
INT by
A5,
A2,
A9,
FINSEQ_2:def 5,
FUNCT_7: 32;
(
dom the
Sorts of A)
= the
carrier of S & (
dom Q)
= the
carrier of S by
PARTFUN1:def 2;
then (the
Sorts of A
*
<*J*>)
=
<*(the
Sorts of A
. J)*> & (Q
*
<*J*>)
=
<*(Q
. J)*> & (the
Sorts of A
. J)
= (Q
. J) by
A2,
A5,
FUNCT_7: 32,
FINSEQ_2: 34;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13,
A17;
end;
suppose y
= 7 or y
= 8 or y
= 9;
then (the
Arity of S
. o)
=
<*J, J*> & (the
ResultSort of S
. o)
= J &
<*J, J*>
in (the
carrier of S
* ) by
A2,
A14,
FINSEQ_1:def 11;
then
A18: ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
*
<*J, J*>)) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
*
<*J, J*>)) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
INT & (Q
. (the
ResultSort of S
. o))
=
INT by
A5,
A2,
A9,
FINSEQ_2:def 5,
FUNCT_7: 32;
(
dom the
Sorts of A)
= the
carrier of S & (
dom Q)
= the
carrier of S by
PARTFUN1:def 2;
then (the
Sorts of A
*
<*J, J*>)
=
<*(the
Sorts of A
. J), (the
Sorts of A
. J)*> & (Q
*
<*J, J*>)
=
<*(Q
. J), (Q
. J)*> & (the
Sorts of A
. J)
= (Q
. J) by
A5,
A2,
FUNCT_7: 32,
FINSEQ_2: 125;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13,
A18;
end;
suppose y
= 10;
then (the
Arity of S
. o)
=
<*J, J*> & (the
ResultSort of S
. o)
= the
bool-sort of S &
<*J, J*>
in (the
carrier of S
* ) by
A2,
A14,
FINSEQ_1:def 11;
then
A19: ((the
Sorts of A
# )
. (the
Arity of S
. o))
= (
product (the
Sorts of A
*
<*J, J*>)) & ((Q
# )
. (the
Arity of S
. o))
= (
product (Q
*
<*J, J*>)) & (the
Sorts of A
. (the
ResultSort of S
. o))
=
BOOLEAN & (Q
. (the
ResultSort of S
. o))
=
BOOLEAN by
A6,
A8,
FINSEQ_2:def 5,
FUNCT_7: 32;
(
dom the
Sorts of A)
= the
carrier of S & (
dom Q)
= the
carrier of S by
PARTFUN1:def 2;
then (the
Sorts of A
*
<*J, J*>)
=
<*(the
Sorts of A
. J), (the
Sorts of A
. J)*> & (Q
*
<*J, J*>)
=
<*(Q
. J), (Q
. J)*> & (the
Sorts of A
. J)
= (Q
. J) by
A5,
A2,
FUNCT_7: 32,
FINSEQ_2: 125;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x) by
A12,
A13,
A19;
end;
end;
suppose x
nin (the
connectives of S
.: (
Seg 10));
then (Ch
. x)
= (F
. x) by
A10,
FUNCT_4: 11;
hence (Ch
. x) is
Function of (((Q
# )
* the
Arity of S)
. x), ((Q
* the
ResultSort of S)
. x);
end;
end;
then
reconsider Ch as
ManySortedFunction of ((Q
# )
* the
Arity of S), (Q
* the
ResultSort of S);
set A0 =
MSAlgebra (# Q, Ch #);
A20: A0 is
bool-correct
proof
thus (the
Sorts of A0
. the
bool-sort of S)
= (the
Sorts of A
. the
bool-sort of S) by
A6,
FUNCT_7: 32
.=
BOOLEAN by
Def31;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 1
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A21: 1
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A22: (
In ((the
connectives of S
. 1),the
carrier' of S))
= (the
connectives of S
. 1) by
SUBSET_1:def 8,
FUNCT_1: 102;
1
in (
Seg 10);
then
A23: (the
connectives of S
. 1)
in (the
connectives of S
.: (
Seg 10)) by
A21,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 1)) by
A22,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A)) by
A22,
A23,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A0))
.
{} )
=
TRUE by
Def31;
let x,y be
boolean
object;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 2
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A24: 2
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A25: (
In ((the
connectives of S
. 2),the
carrier' of S))
= (the
connectives of S
. 2) by
SUBSET_1:def 8,
FUNCT_1: 102;
2
in (
Seg 10);
then
A26: (
In ((the
connectives of S
. 2),the
carrier' of S))
in (the
connectives of S
.: (
Seg 10)) by
A24,
A25,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 2)) by
A25,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A)) by
A25,
A26,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A0))
.
<*x*>)
= (
'not' x) by
Def31;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 3
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A27: 3
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A28: (
In ((the
connectives of S
. 3),the
carrier' of S))
= (the
connectives of S
. 3) by
SUBSET_1:def 8,
FUNCT_1: 102;
3
in (
Seg 10);
then
A29: (the
connectives of S
. 3)
in (the
connectives of S
.: (
Seg 10)) by
A27,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 3)) by
A28,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A)) by
A28,
A29,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A0))
.
<*x, y*>)
= (x
'&' y) by
Def31;
end;
A0 is
non-empty;
then
reconsider A0 as
bool-correct
non-empty
MSAlgebra over S by
A20;
take A0;
thus A0 is 4, I
integer
proof
take K;
thus K
= I & (the
connectives of S
. 4)
is_of_type (
{} ,K) by
A9;
thus (the
Sorts of A0
. K)
=
INT by
A9,
A5,
FUNCT_7: 32;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 4
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A30: 4
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A31: (
In ((the
connectives of S
. 4),the
carrier' of S))
= (the
connectives of S
. 4) by
FUNCT_1: 102,
SUBSET_1:def 8;
4
in (
Seg 10);
then
A32: (the
connectives of S
. 4)
in (the
connectives of S
.: (
Seg 10)) by
A30,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 4),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 4)) by
A31,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 4),the
carrier' of S)),A)) by
A31,
A32,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. 4),the
carrier' of S)),A0))
.
{} )
=
0 by
A9;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 5
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A33: 5
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A34: (
In ((the
connectives of S
. 5),the
carrier' of S))
= (the
connectives of S
. 5) by
FUNCT_1: 102,
SUBSET_1:def 8;
5
in (
Seg 10);
then
A35: (the
connectives of S
. 5)
in (the
connectives of S
.: (
Seg 10)) by
A33,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 5),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 5)) by
A34,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 5),the
carrier' of S)),A)) by
A34,
A35,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. (4
+ 1)),the
carrier' of S)),A0))
.
{} )
= 1 by
A9;
let i,j be
Integer;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 6
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A36: 6
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A37: (
In ((the
connectives of S
. 6),the
carrier' of S))
= (the
connectives of S
. 6) by
FUNCT_1: 102,
SUBSET_1:def 8;
6
in (
Seg 10);
then
A38: (the
connectives of S
. 6)
in (the
connectives of S
.: (
Seg 10)) by
A36,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 6),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 6)) by
A37,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 6),the
carrier' of S)),A)) by
A37,
A38,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. (4
+ 2)),the
carrier' of S)),A0))
.
<*i*>)
= (
- i) by
A9;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 7
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A39: 7
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A40: (
In ((the
connectives of S
. 7),the
carrier' of S))
= (the
connectives of S
. 7) by
FUNCT_1: 102,
SUBSET_1:def 8;
7
in (
Seg 10);
then
A41: (the
connectives of S
. 7)
in (the
connectives of S
.: (
Seg 10)) by
A39,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 7),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 7)) by
A40,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 7),the
carrier' of S)),A)) by
A40,
A41,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. (4
+ 3)),the
carrier' of S)),A0))
.
<*i, j*>)
= (i
+ j) by
A9;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 8
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A42: 8
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A43: (
In ((the
connectives of S
. 8),the
carrier' of S))
= (the
connectives of S
. 8) by
FUNCT_1: 102,
SUBSET_1:def 8;
8
in (
Seg 10);
then
A44: (the
connectives of S
. 8)
in (the
connectives of S
.: (
Seg 10)) by
A42,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 8),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 8)) by
A43,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 8),the
carrier' of S)),A)) by
A43,
A44,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. (4
+ 4)),the
carrier' of S)),A0))
.
<*i, j*>)
= (i
* j) by
A9;
hereby
assume
A45: j
<>
0 ;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then 9
<= (
len the
connectives of S) by
XXREAL_0: 2;
then
A46: 9
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A47: (
In ((the
connectives of S
. 9),the
carrier' of S))
= (the
connectives of S
. 9) by
FUNCT_1: 102,
SUBSET_1:def 8;
9
in (
Seg 10);
then
A48: (the
connectives of S
. 9)
in (the
connectives of S
.: (
Seg 10)) by
A46,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 9),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 9)) by
A47,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 9),the
carrier' of S)),A)) by
A47,
A48,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. (4
+ 5)),the
carrier' of S)),A0))
.
<*i, j*>)
= (i
div j) by
A45,
A9;
end;
(4
+ 6)
<= (
len the
connectives of S) by
A1;
then
A49: 10
in (
dom the
connectives of S) by
FINSEQ_3: 25;
then
A50: (
In ((the
connectives of S
. 10),the
carrier' of S))
= (the
connectives of S
. 10) by
FUNCT_1: 102,
SUBSET_1:def 8;
10
in (
Seg 10);
then
A51: (the
connectives of S
. 10)
in (the
connectives of S
.: (
Seg 10)) by
A49,
FUNCT_1:def 6;
then (
Den ((
In ((the
connectives of S
. 10),the
carrier' of S)),A0))
= ((the
Charact of A
| (the
connectives of S
.: (
Seg 10)))
. (the
connectives of S
. 10)) by
A50,
A10,
FUNCT_4: 13
.= (
Den ((
In ((the
connectives of S
. 10),the
carrier' of S)),A)) by
A50,
A51,
FUNCT_1: 49;
hence ((
Den ((
In ((the
connectives of S
. (4
+ 6)),the
carrier' of S)),A0))
.
<*i, j*>)
= (
IFGT (i,j,
FALSE ,
TRUE )) by
A9;
end;
(
dom the
Sorts of A)
= the
carrier of S by
PARTFUN1:def 2;
hence (the
Sorts of A0
. s)
= X by
A4,
FUNCT_7: 31;
end;
registration
let S be
1-1-connectives11, 1, 1
-array11
array-correct4, 1
integer
bool-correct non
empty non
void
BoolSignature;
cluster 11, 1, 1
-array4, 1
integer for
bool-correct
non-empty
strict
MSAlgebra over S;
existence
proof
11
= (10
+ 1) & (4
+ 6)
<= 10;
then
consider B be
bool-correct non
empty non
void
BoolSignature, C be non
empty non
void
ConnectivesSignature such that
A1: the BoolSignature of S
= (B
+* C) & B is 10
-connectives4, 1
integer & C is 1, 1, 1
-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
| 10) & the
connectives of C
= (the
connectives of S
/^ 10) by
Th63;
reconsider B as 4, 1
integer
bool-correct non
empty non
void
BoolSignature by
A1;
reconsider C as 1, 1, 1
-array non
empty non
void
ConnectivesSignature by
A1;
set s = (the
ResultSort of C
. (the
connectives of C
. 2));
(1
+ 3)
<= (
len the
connectives of C) by
Def50;
then 2
<= (
len the
connectives of C) by
XXREAL_0: 2;
then
A2: 2
in (
dom the
connectives of C) by
FINSEQ_3: 25;
then
A3: s
in the
carrier of B by
A1,
FUNCT_1: 102,
FUNCT_2: 5;
consider J,K,L be
Element of C such that
A4: L
= 1 & K
= 1 & J
<> L & J
<> K & (the
connectives of C
. 1)
is_of_type (
<*J, K*>,L) & (the
connectives of C
. (1
+ 1))
is_of_type (
<*J, K, L*>,J) & (the
connectives of C
. (1
+ 2))
is_of_type (
<*J*>,K) & (the
connectives of C
. (1
+ 3))
is_of_type (
<*K, L*>,J) by
Def50;
A5: s
<> 1 by
A4;
A6: the
connectives of S
= (the
connectives of B
^ the
connectives of C) by
A1,
Def52;
A7: the
ResultSort of S
= (the
ResultSort of B
+* the
ResultSort of C) by
A1,
Th51;
A8: (the
ResultSort of S
. (the
connectives of S
. (11
+ 1)))
<> the
bool-sort of S by
Def53;
(
len the
connectives of B)
= 10 by
A1;
then (the
connectives of C
. (1
+ 1))
= (the
connectives of S
. (10
+ (1
+ 1))) & (the
connectives of C
. (1
+ 1))
in the
carrier' of C & (
dom the
ResultSort of C)
= the
carrier' of C by
A6,
A2,
FUNCT_1: 102,
FINSEQ_1:def 7,
FUNCT_2:def 1;
then (the
ResultSort of S
. (the
connectives of S
. (10
+ (1
+ 1))))
= s & the
bool-sort of B
= the
bool-sort of S by
A1,
Def52,
A7,
FUNCT_4: 13;
then
consider A1 be
bool-correct
non-empty
MSAlgebra over B such that
A9: A1 is 4, 1
integer & (the
Sorts of A1
. s)
= (
INT
^omega ) by
A3,
A5,
A8,
Th64;
consider A2 be
non-empty
strict
MSAlgebra over C such that
A10: A2 is 1, 1, 1
-array & the
Sorts of A2
tolerates the
Sorts of A1 by
A9,
Th56;
reconsider A = ((B,A1)
+* A2) as
strict
MSAlgebra over S by
A1;
A11: A is
non-empty;
((B,A1)
+* A2) is
bool-correct by
A10,
Th57,
A1,
XBOOLE_1: 79;
then (the
Sorts of ((B,A1)
+* A2)
. the
bool-sort of S)
=
BOOLEAN & ((
Den ((
In ((the
connectives of (B
+* C)
. 1),the
carrier' of (B
+* C))),((B,A1)
+* A2)))
.
{} )
=
TRUE & for x,y be
boolean
object holds ((
Den ((
In ((the
connectives of (B
+* C)
. 2),the
carrier' of (B
+* C))),((B,A1)
+* A2)))
.
<*x*>)
= (
'not' x) & ((
Den ((
In ((the
connectives of (B
+* C)
. 3),the
carrier' of (B
+* C))),((B,A1)
+* A2)))
.
<*x, y*>)
= (x
'&' y) by
A1;
then (the
Sorts of A
. the
bool-sort of S)
=
BOOLEAN & ((
Den ((
In ((the
connectives of S
. 1),the
carrier' of S)),A))
.
{} )
=
TRUE & for x,y be
boolean
object holds ((
Den ((
In ((the
connectives of S
. 2),the
carrier' of S)),A))
.
<*x*>)
= (
'not' x) & ((
Den ((
In ((the
connectives of S
. 3),the
carrier' of S)),A))
.
<*x, y*>)
= (x
'&' y) by
A1;
then
reconsider A = ((B,A1)
+* A2) as
bool-correct
non-empty
strict
MSAlgebra over S by
A11,
Def31;
take A;
11
= (10
+ 1);
hence A is 11, 1, 1
-array by
A1,
A10,
Th59;
thus A is 4, 1
integer by
A1,
A10,
A9,
Th58,
XBOOLE_1: 79;
end;
end