:: ABCMIZ_0 semantic presentation

registration
cluster non empty trivial reflexive -> non empty complete RelStr ;
coherence
for b1 being non empty RelStr holds
( b1 is trivial & b1 is reflexive implies b1 is complete )
proof end;
end;

definition
let c1 be RelStr ;
mode type is Element of a1;
end;

definition
let c1 be RelStr ;
attr a1 is Noetherian means :Def1: :: ABCMIZ_0:def 1
the InternalRel of a1 is co-well_founded;
end;

:: deftheorem Def1 defines Noetherian ABCMIZ_0:def 1 :
for b1 being RelStr holds
( b1 is Noetherian iff the InternalRel of b1 is co-well_founded );

registration
cluster non empty trivial -> non empty Noetherian RelStr ;
coherence
for b1 being non empty RelStr holds
( b1 is trivial implies b1 is Noetherian )
proof end;
end;

definition
let c1 be non empty RelStr ;
redefine attr a1 is Noetherian means :Def2: :: ABCMIZ_0:def 2
for b1 being non empty Subset of a1 holds
ex b2 being Element of a1 st
( b2 in b1 & ( for b3 being Element of a1 holds
not ( b3 in b1 & b2 < b3 ) ) );
compatibility
( c1 is Noetherian iff for b1 being non empty Subset of c1 holds
ex b2 being Element of c1 st
( b2 in b1 & ( for b3 being Element of c1 holds
not ( b3 in b1 & b2 < b3 ) ) ) )
proof end;
end;

:: deftheorem Def2 defines Noetherian ABCMIZ_0:def 2 :
for b1 being non empty RelStr holds
( b1 is Noetherian iff for b2 being non empty Subset of b1 holds
ex b3 being Element of b1 st
( b3 in b2 & ( for b4 being Element of b1 holds
not ( b4 in b2 & b3 < b4 ) ) ) );

definition
let c1 be Poset;
attr a1 is Mizar-widening-like means :: ABCMIZ_0:def 3
( a1 is sup-Semilattice & a1 is Noetherian );
end;

:: deftheorem Def3 defines Mizar-widening-like ABCMIZ_0:def 3 :
for b1 being Poset holds
( b1 is Mizar-widening-like iff ( b1 is sup-Semilattice & b1 is Noetherian ) );

registration
cluster Mizar-widening-like -> with_suprema upper-bounded Noetherian RelStr ;
coherence
for b1 being Poset holds
( b1 is Mizar-widening-like implies ( b1 is Noetherian & b1 is with_suprema & b1 is upper-bounded ) )
proof end;
end;

registration
cluster Noetherian -> upper-bounded Noetherian Mizar-widening-like RelStr ;
coherence
for b1 being sup-Semilattice holds
( b1 is Noetherian implies b1 is Mizar-widening-like )
proof end;
end;

registration
cluster complete Noetherian Mizar-widening-like RelStr ;
existence
ex b1 being complete sup-Semilattice st b1 is Mizar-widening-like
proof end;
end;

registration
let c1 be Noetherian RelStr ;
cluster the InternalRel of a1 -> co-well_founded ;
coherence
the InternalRel of c1 is co-well_founded
by Def1;
end;

theorem Th1: :: ABCMIZ_0:1
for b1 being Noetherian sup-Semilattice
for b2 being Ideal of b1 holds
( ex_sup_of b2,b1 & sup b2 in b2 )
proof end;

definition
attr a1 is strict;
struct AdjectiveStr -> ;
aggr AdjectiveStr(# adjectives, non-op #) -> AdjectiveStr ;
sel adjectives c1 -> set ;
sel non-op c1 -> UnOp of the adjectives of a1;
end;

definition
let c1 be AdjectiveStr ;
attr a1 is void means :Def4: :: ABCMIZ_0:def 4
the adjectives of a1 is empty;
mode adjective is Element of the adjectives of a1;
end;

:: deftheorem Def4 defines void ABCMIZ_0:def 4 :
for b1 being AdjectiveStr holds
( b1 is void iff the adjectives of b1 is empty );

theorem Th2: :: ABCMIZ_0:2
for b1, b2 being AdjectiveStr holds
( the adjectives of b1 = the adjectives of b2 & b1 is void implies b2 is void )
proof end;

definition
let c1 be AdjectiveStr ;
let c2 be Element of the adjectives of c1;
func non- c2 -> adjective of a1 equals :: ABCMIZ_0:def 5
the non-op of a1 . a2;
coherence
the non-op of c1 . c2 is adjective of c1
proof end;
end;

:: deftheorem Def5 defines non- ABCMIZ_0:def 5 :
for b1 being AdjectiveStr
for b2 being Element of the adjectives of b1 holds non- b2 = the non-op of b1 . b2;

theorem Th3: :: ABCMIZ_0:3
for b1, b2 being AdjectiveStr holds
( AdjectiveStr(# the adjectives of b1,the non-op of b1 #) = AdjectiveStr(# the adjectives of b2,the non-op of b2 #) implies for b3 being adjective of b1
for b4 being adjective of b2 holds
( b3 = b4 implies non- b3 = non- b4 ) ) ;

definition
let c1 be AdjectiveStr ;
attr a1 is involutive means :Def6: :: ABCMIZ_0:def 6
for b1 being adjective of a1 holds non- (non- b1) = b1;
attr a1 is without_fixpoints means :: ABCMIZ_0:def 7
for b1 being adjective of a1 holds
not non- b1 = b1;
end;

:: deftheorem Def6 defines involutive ABCMIZ_0:def 6 :
for b1 being AdjectiveStr holds
( b1 is involutive iff for b2 being adjective of b1 holds non- (non- b2) = b2 );

:: deftheorem Def7 defines without_fixpoints ABCMIZ_0:def 7 :
for b1 being AdjectiveStr holds
( b1 is without_fixpoints iff for b2 being adjective of b1 holds
not non- b2 = b2 );

theorem Th4: :: ABCMIZ_0:4
for b1, b2 being set holds
( b1 <> b2 implies for b3 being AdjectiveStr holds
( the adjectives of b3 = {b1,b2} & the non-op of b3 . b1 = b2 & the non-op of b3 . b2 = b1 implies ( not b3 is void & b3 is involutive & b3 is without_fixpoints ) ) )
proof end;

theorem Th5: :: ABCMIZ_0:5
for b1, b2 being AdjectiveStr holds
( AdjectiveStr(# the adjectives of b1,the non-op of b1 #) = AdjectiveStr(# the adjectives of b2,the non-op of b2 #) & b1 is involutive implies b2 is involutive )
proof end;

theorem Th6: :: ABCMIZ_0:6
for b1, b2 being AdjectiveStr holds
( AdjectiveStr(# the adjectives of b1,the non-op of b1 #) = AdjectiveStr(# the adjectives of b2,the non-op of b2 #) & b1 is without_fixpoints implies b2 is without_fixpoints )
proof end;

registration
cluster strict non void involutive without_fixpoints AdjectiveStr ;
existence
ex b1 being strict AdjectiveStr st
( not b1 is void & b1 is involutive & b1 is without_fixpoints )
proof end;
end;

registration
let c1 be non void AdjectiveStr ;
cluster the adjectives of a1 -> non empty ;
coherence
not the adjectives of c1 is empty
by Def4;
end;

definition
attr a1 is strict;
struct TA-structure -> RelStr , AdjectiveStr ;
aggr TA-structure(# carrier, adjectives, InternalRel, non-op, adj-map #) -> TA-structure ;
sel adj-map c1 -> Function of the carrier of a1, Fin the adjectives of a1;
end;

registration
let c1 be non empty set ;
let c2 be set ;
let c3 be Relation of c1;
let c4 be UnOp of c2;
let c5 be Function of c1, Fin c2;
cluster TA-structure(# a1,a2,a3,a4,a5 #) -> non empty ;
coherence
not TA-structure(# c1,c2,c3,c4,c5 #) is empty
by STRUCT_0:def 1;
end;

registration
let c1 be set ;
let c2 be non empty set ;
let c3 be Relation of c1;
let c4 be UnOp of c2;
let c5 be Function of c1, Fin c2;
cluster TA-structure(# a1,a2,a3,a4,a5 #) -> non void ;
coherence
not TA-structure(# c1,c2,c3,c4,c5 #) is void
by Def4;
end;

registration
cluster non empty trivial reflexive complete Noetherian Mizar-widening-like non void involutive without_fixpoints strict TA-structure ;
existence
ex b1 being TA-structure st
( b1 is trivial & b1 is reflexive & not b1 is empty & not b1 is void & b1 is involutive & b1 is without_fixpoints & b1 is strict )
proof end;
end;

definition
let c1 be TA-structure ;
let c2 be Element of c1;
func adjs c2 -> Subset of the adjectives of a1 equals :: ABCMIZ_0:def 8
the adj-map of a1 . a2;
coherence
the adj-map of c1 . c2 is Subset of the adjectives of c1
proof end;
end;

:: deftheorem Def8 defines adjs ABCMIZ_0:def 8 :
for b1 being TA-structure
for b2 being Element of b1 holds adjs b2 = the adj-map of b1 . b2;

theorem Th7: :: ABCMIZ_0:7
for b1, b2 being TA-structure holds
( TA-structure(# the carrier of b1,the adjectives of b1,the InternalRel of b1,the non-op of b1,the adj-map of b1 #) = TA-structure(# the carrier of b2,the adjectives of b2,the InternalRel of b2,the non-op of b2,the adj-map of b2 #) implies for b3 being type of b1
for b4 being type of b2 holds
( b3 = b4 implies adjs b3 = adjs b4 ) ) ;

definition
let c1 be TA-structure ;
attr a1 is consistent means :Def9: :: ABCMIZ_0:def 9
for b1 being type of a1
for b2 being adjective of a1 holds
not ( b2 in adjs b1 & non- b2 in adjs b1 );
end;

:: deftheorem Def9 defines consistent ABCMIZ_0:def 9 :
for b1 being TA-structure holds
( b1 is consistent iff for b2 being type of b1
for b3 being adjective of b1 holds
not ( b3 in adjs b2 & non- b3 in adjs b2 ) );

theorem Th8: :: ABCMIZ_0:8
for b1, b2 being TA-structure holds
( TA-structure(# the carrier of b1,the adjectives of b1,the InternalRel of b1,the non-op of b1,the adj-map of b1 #) = TA-structure(# the carrier of b2,the adjectives of b2,the InternalRel of b2,the non-op of b2,the adj-map of b2 #) & b1 is consistent implies b2 is consistent )
proof end;

definition
let c1 be non empty TA-structure ;
attr a1 is adj-structured means :: ABCMIZ_0:def 10
the adj-map of a1 is join-preserving Function of a1,((BoolePoset the adjectives of a1) opp );
end;

:: deftheorem Def10 defines adj-structured ABCMIZ_0:def 10 :
for b1 being non empty TA-structure holds
( b1 is adj-structured iff the adj-map of b1 is join-preserving Function of b1,((BoolePoset the adjectives of b1) opp ) );

theorem Th9: :: ABCMIZ_0:9
for b1, b2 being non empty TA-structure holds
( TA-structure(# the carrier of b1,the adjectives of b1,the InternalRel of b1,the non-op of b1,the adj-map of b1 #) = TA-structure(# the carrier of b2,the adjectives of b2,the InternalRel of b2,the non-op of b2,the adj-map of b2 #) & b1 is adj-structured implies b2 is adj-structured )
proof end;

definition
let c1 be reflexive transitive antisymmetric with_suprema TA-structure ;
redefine attr a1 is adj-structured means :Def11: :: ABCMIZ_0:def 11
for b1, b2 being type of a1 holds adjs (b1 "\/" b2) = (adjs b1) /\ (adjs b2);
compatibility
( c1 is adj-structured iff for b1, b2 being type of c1 holds adjs (b1 "\/" b2) = (adjs b1) /\ (adjs b2) )
proof end;
end;

:: deftheorem Def11 defines adj-structured ABCMIZ_0:def 11 :
for b1 being reflexive transitive antisymmetric with_suprema TA-structure holds
( b1 is adj-structured iff for b2, b3 being type of b1 holds adjs (b2 "\/" b3) = (adjs b2) /\ (adjs b3) );

theorem Th10: :: ABCMIZ_0:10
for b1 being reflexive transitive antisymmetric with_suprema TA-structure holds
( b1 is adj-structured implies for b2, b3 being type of b1 holds
( b2 <= b3 implies adjs b3 c= adjs b2 ) )
proof end;

definition
let c1 be TA-structure ;
let c2 be Element of the adjectives of c1;
func types c2 -> Subset of a1 means :Def12: :: ABCMIZ_0:def 12
for b1 being set holds
( b1 in a3 iff ex b2 being type of a1 st
( b1 = b2 & a2 in adjs b2 ) );
existence
ex b1 being Subset of c1 st
for b2 being set holds
( b2 in b1 iff ex b3 being type of c1 st
( b2 = b3 & c2 in adjs b3 ) )
proof end;
uniqueness
for b1, b2 being Subset of c1 holds
( ( for b3 being set holds
( b3 in b1 iff ex b4 being type of c1 st
( b3 = b4 & c2 in adjs b4 ) ) ) & ( for b3 being set holds
( b3 in b2 iff ex b4 being type of c1 st
( b3 = b4 & c2 in adjs b4 ) ) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def12 defines types ABCMIZ_0:def 12 :
for b1 being TA-structure
for b2 being Element of the adjectives of b1
for b3 being Subset of b1 holds
( b3 = types b2 iff for b4 being set holds
( b4 in b3 iff ex b5 being type of b1 st
( b4 = b5 & b2 in adjs b5 ) ) );

definition
let c1 be non empty TA-structure ;
let c2 be Subset of the adjectives of c1;
func types c2 -> Subset of a1 means :Def13: :: ABCMIZ_0:def 13
for b1 being type of a1 holds
( b1 in a3 iff for b2 being adjective of a1 holds
( b2 in a2 implies b1 in types b2 ) );
existence
ex b1 being Subset of c1 st
for b2 being type of c1 holds
( b2 in b1 iff for b3 being adjective of c1 holds
( b3 in c2 implies b2 in types b3 ) )
proof end;
uniqueness
for b1, b2 being Subset of c1 holds
( ( for b3 being type of c1 holds
( b3 in b1 iff for b4 being adjective of c1 holds
( b4 in c2 implies b3 in types b4 ) ) ) & ( for b3 being type of c1 holds
( b3 in b2 iff for b4 being adjective of c1 holds
( b4 in c2 implies b3 in types b4 ) ) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def13 defines types ABCMIZ_0:def 13 :
for b1 being non empty TA-structure
for b2 being Subset of the adjectives of b1
for b3 being Subset of b1 holds
( b3 = types b2 iff for b4 being type of b1 holds
( b4 in b3 iff for b5 being adjective of b1 holds
( b5 in b2 implies b4 in types b5 ) ) );

theorem Th11: :: ABCMIZ_0:11
for b1, b2 being TA-structure holds
( TA-structure(# the carrier of b1,the adjectives of b1,the InternalRel of b1,the non-op of b1,the adj-map of b1 #) = TA-structure(# the carrier of b2,the adjectives of b2,the InternalRel of b2,the non-op of b2,the adj-map of b2 #) implies for b3 being adjective of b1
for b4 being adjective of b2 holds
( b3 = b4 implies types b3 = types b4 ) )
proof end;

theorem Th12: :: ABCMIZ_0:12
for b1 being non empty TA-structure
for b2 being adjective of b1 holds types b2 = { b3 where B is type of b1 : b2 in adjs b3 }
proof end;

theorem Th13: :: ABCMIZ_0:13
for b1 being TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 in adjs b2 iff b2 in types b3 )
proof end;

theorem Th14: :: ABCMIZ_0:14
for b1 being non empty TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 c= adjs b2 iff b2 in types b3 )
proof end;

theorem Th15: :: ABCMIZ_0:15
for b1 being non void TA-structure
for b2 being type of b1 holds adjs b2 = { b3 where B is adjective of b1 : b2 in types b3 }
proof end;

theorem Th16: :: ABCMIZ_0:16
for b1 being non empty TA-structure holds types ({} the adjectives of b1) = the carrier of b1
proof end;

definition
let c1 be TA-structure ;
attr a1 is adjs-typed means :: ABCMIZ_0:def 14
for b1 being adjective of a1 holds
not (types b1) \/ (types (non- b1)) is empty;
end;

:: deftheorem Def14 defines adjs-typed ABCMIZ_0:def 14 :
for b1 being TA-structure holds
( b1 is adjs-typed iff for b2 being adjective of b1 holds
not (types b2) \/ (types (non- b2)) is empty );

theorem Th17: :: ABCMIZ_0:17
for b1, b2 being TA-structure holds
( TA-structure(# the carrier of b1,the adjectives of b1,the InternalRel of b1,the non-op of b1,the adj-map of b1 #) = TA-structure(# the carrier of b2,the adjectives of b2,the InternalRel of b2,the non-op of b2,the adj-map of b2 #) & b1 is adjs-typed implies b2 is adjs-typed )
proof end;

registration
cluster non empty trivial reflexive transitive antisymmetric complete upper-bounded Noetherian Mizar-widening-like non void involutive without_fixpoints strict consistent adj-structured adjs-typed TA-structure ;
existence
ex b1 being non empty trivial reflexive transitive antisymmetric complete upper-bounded strict TA-structure st
( not b1 is void & b1 is Mizar-widening-like & b1 is involutive & b1 is without_fixpoints & b1 is consistent & b1 is adj-structured & b1 is adjs-typed )
proof end;
end;

theorem Th18: :: ABCMIZ_0:18
for b1 being consistent TA-structure
for b2 being adjective of b1 holds types b2 misses types (non- b2)
proof end;

registration
let c1 be reflexive transitive antisymmetric with_suprema adj-structured TA-structure ;
let c2 be adjective of c1;
cluster types a2 -> directed lower ;
coherence
( types c2 is lower & types c2 is directed )
proof end;
end;

registration
let c1 be reflexive transitive antisymmetric with_suprema adj-structured TA-structure ;
let c2 be Subset of the adjectives of c1;
cluster types a2 -> directed lower ;
coherence
( types c2 is lower & types c2 is directed )
proof end;
end;

definition
let c1 be TA-structure ;
let c2 be Element of c1;
let c3 be adjective of c1;
pred c3 is_applicable_to c2 means :Def15: :: ABCMIZ_0:def 15
ex b1 being type of a1 st
( b1 in types a3 & b1 <= a2 );
end;

:: deftheorem Def15 defines is_applicable_to ABCMIZ_0:def 15 :
for b1 being TA-structure
for b2 being Element of b1
for b3 being adjective of b1 holds
( b3 is_applicable_to b2 iff ex b4 being type of b1 st
( b4 in types b3 & b4 <= b2 ) );

definition
let c1 be TA-structure ;
let c2 be type of c1;
let c3 be Subset of the adjectives of c1;
pred c3 is_applicable_to c2 means :Def16: :: ABCMIZ_0:def 16
ex b1 being type of a1 st
( a3 c= adjs b1 & b1 <= a2 );
end;

:: deftheorem Def16 defines is_applicable_to ABCMIZ_0:def 16 :
for b1 being TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 is_applicable_to b2 iff ex b4 being type of b1 st
( b3 c= adjs b4 & b4 <= b2 ) );

theorem Th19: :: ABCMIZ_0:19
canceled;

theorem Th20: :: ABCMIZ_0:20
for b1 being reflexive transitive antisymmetric with_suprema adj-structured TA-structure
for b2 being adjective of b1
for b3 being type of b1 holds
( b2 is_applicable_to b3 implies (types b2) /\ (downarrow b3) is Ideal of b1 )
proof end;

definition
let c1 be non empty reflexive transitive TA-structure ;
let c2 be Element of c1;
let c3 be adjective of c1;
func c3 ast c2 -> type of a1 equals :: ABCMIZ_0:def 17
sup ((types a3) /\ (downarrow a2));
coherence
sup ((types c3) /\ (downarrow c2)) is type of c1
;
end;

:: deftheorem Def17 defines ast ABCMIZ_0:def 17 :
for b1 being non empty reflexive transitive TA-structure
for b2 being Element of b1
for b3 being adjective of b1 holds b3 ast b2 = sup ((types b3) /\ (downarrow b2));

theorem Th21: :: ABCMIZ_0:21
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 is_applicable_to b2 implies b3 ast b2 <= b2 )
proof end;

theorem Th22: :: ABCMIZ_0:22
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 is_applicable_to b2 implies b3 in adjs (b3 ast b2) )
proof end;

theorem Th23: :: ABCMIZ_0:23
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 is_applicable_to b2 implies b3 ast b2 in types b3 )
proof end;

theorem Th24: :: ABCMIZ_0:24
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being adjective of b1
for b4 being type of b1 holds
( b4 <= b2 & b3 in adjs b4 implies ( b3 is_applicable_to b2 & b4 <= b3 ast b2 ) )
proof end;

theorem Th25: :: ABCMIZ_0:25
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 in adjs b2 implies ( b3 is_applicable_to b2 & b3 ast b2 = b2 ) )
proof end;

theorem Th26: :: ABCMIZ_0:26
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3, b4 being adjective of b1 holds
( b3 is_applicable_to b2 & b4 is_applicable_to b3 ast b2 implies ( b4 is_applicable_to b2 & b3 is_applicable_to b4 ast b2 & b3 ast (b4 ast b2) = b4 ast (b3 ast b2) ) )
proof end;

theorem Th27: :: ABCMIZ_0:27
for b1 being reflexive transitive antisymmetric with_suprema adj-structured TA-structure
for b2 being Subset of the adjectives of b1
for b3 being type of b1 holds
( b2 is_applicable_to b3 implies (types b2) /\ (downarrow b3) is Ideal of b1 )
proof end;

definition
let c1 be non empty reflexive transitive TA-structure ;
let c2 be type of c1;
let c3 be Subset of the adjectives of c1;
func c3 ast c2 -> type of a1 equals :: ABCMIZ_0:def 18
sup ((types a3) /\ (downarrow a2));
coherence
sup ((types c3) /\ (downarrow c2)) is type of c1
;
end;

:: deftheorem Def18 defines ast ABCMIZ_0:def 18 :
for b1 being non empty reflexive transitive TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds b3 ast b2 = sup ((types b3) /\ (downarrow b2));

theorem Th28: :: ABCMIZ_0:28
for b1 being non empty reflexive transitive antisymmetric TA-structure
for b2 being type of b1 holds ({} the adjectives of b1) ast b2 = b2
proof end;

definition
let c1 be non empty reflexive transitive non void TA-structure ;
let c2 be type of c1;
let c3 be FinSequence of the adjectives of c1;
func apply c3,c2 -> FinSequence of the carrier of a1 means :Def19: :: ABCMIZ_0:def 19
( len a4 = (len a3) + 1 & a4 . 1 = a2 & ( for b1 being Nat
for b2 being adjective of a1
for b3 being type of a1 holds
( b1 in dom a3 & b2 = a3 . b1 & b3 = a4 . b1 implies a4 . (b1 + 1) = b2 ast b3 ) ) );
existence
ex b1 being FinSequence of the carrier of c1 st
( len b1 = (len c3) + 1 & b1 . 1 = c2 & ( for b2 being Nat
for b3 being adjective of c1
for b4 being type of c1 holds
( b2 in dom c3 & b3 = c3 . b2 & b4 = b1 . b2 implies b1 . (b2 + 1) = b3 ast b4 ) ) )
proof end;
correctness
uniqueness
for b1, b2 being FinSequence of the carrier of c1 holds
( len b1 = (len c3) + 1 & b1 . 1 = c2 & ( for b3 being Nat
for b4 being adjective of c1
for b5 being type of c1 holds
( b3 in dom c3 & b4 = c3 . b3 & b5 = b1 . b3 implies b1 . (b3 + 1) = b4 ast b5 ) ) & len b2 = (len c3) + 1 & b2 . 1 = c2 & ( for b3 being Nat
for b4 being adjective of c1
for b5 being type of c1 holds
( b3 in dom c3 & b4 = c3 . b3 & b5 = b2 . b3 implies b2 . (b3 + 1) = b4 ast b5 ) ) implies b1 = b2 )
;
proof end;
end;

:: deftheorem Def19 defines apply ABCMIZ_0:def 19 :
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1
for b4 being FinSequence of the carrier of b1 holds
( b4 = apply b3,b2 iff ( len b4 = (len b3) + 1 & b4 . 1 = b2 & ( for b5 being Nat
for b6 being adjective of b1
for b7 being type of b1 holds
( b5 in dom b3 & b6 = b3 . b5 & b7 = b4 . b5 implies b4 . (b5 + 1) = b6 ast b7 ) ) ) );

registration
let c1 be non empty reflexive transitive non void TA-structure ;
let c2 be type of c1;
let c3 be FinSequence of the adjectives of c1;
cluster apply a3,a2 -> non empty ;
coherence
not apply c3,c2 is empty
proof end;
end;

theorem Th29: :: ABCMIZ_0:29
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1 holds apply (<*> the adjectives of b1),b2 = <*b2*>
proof end;

theorem Th30: :: ABCMIZ_0:30
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds apply <*b3*>,b2 = <*b2,(b3 ast b2)*>
proof end;

definition
let c1 be non empty reflexive transitive non void TA-structure ;
let c2 be type of c1;
let c3 be FinSequence of the adjectives of c1;
func c3 ast c2 -> type of a1 equals :: ABCMIZ_0:def 20
(apply a3,a2) . ((len a3) + 1);
coherence
(apply c3,c2) . ((len c3) + 1) is type of c1
proof end;
end;

:: deftheorem Def20 defines ast ABCMIZ_0:def 20 :
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds b3 ast b2 = (apply b3,b2) . ((len b3) + 1);

theorem Th31: :: ABCMIZ_0:31
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1 holds (<*> the adjectives of b1) ast b2 = b2
proof end;

theorem Th32: :: ABCMIZ_0:32
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds <*b3*> ast b2 = b3 ast b2
proof end;

theorem Th33: :: ABCMIZ_0:33
for b1, b2 being FinSequence
for b3 being natural number holds
( b3 >= 1 & b3 < len b1 implies (b1 $^ b2) . b3 = b1 . b3 )
proof end;

theorem Th34: :: ABCMIZ_0:34
for b1 being non empty FinSequence
for b2 being FinSequence
for b3 being natural number holds
( b3 < len b2 implies (b1 $^ b2) . ((len b1) + b3) = b2 . (b3 + 1) )
proof end;

theorem Th35: :: ABCMIZ_0:35
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds apply (b3 ^ b4),b2 = (apply b3,b2) $^ (apply b4,(b3 ast b2))
proof end;

theorem Th36: :: ABCMIZ_0:36
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1
for b5 being natural number holds
( b5 in dom b3 implies (apply (b3 ^ b4),b2) . b5 = (apply b3,b2) . b5 )
proof end;

theorem Th37: :: ABCMIZ_0:37
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds (apply (b3 ^ b4),b2) . ((len b3) + 1) = b3 ast b2
proof end;

theorem Th38: :: ABCMIZ_0:38
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds b4 ast (b3 ast b2) = (b3 ^ b4) ast b2
proof end;

definition
let c1 be non empty reflexive transitive non void TA-structure ;
let c2 be type of c1;
let c3 be FinSequence of the adjectives of c1;
pred c3 is_applicable_to c2 means :Def21: :: ABCMIZ_0:def 21
for b1 being natural number
for b2 being adjective of a1
for b3 being type of a1 holds
( b1 in dom a3 & b2 = a3 . b1 & b3 = (apply a3,a2) . b1 implies b2 is_applicable_to b3 );
end;

:: deftheorem Def21 defines is_applicable_to ABCMIZ_0:def 21 :
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 iff for b4 being natural number
for b5 being adjective of b1
for b6 being type of b1 holds
( b4 in dom b3 & b5 = b3 . b4 & b6 = (apply b3,b2) . b4 implies b5 is_applicable_to b6 ) );

theorem Th39: :: ABCMIZ_0:39
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1 holds <*> the adjectives of b1 is_applicable_to b2
proof end;

theorem Th40: :: ABCMIZ_0:40
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 is_applicable_to b2 iff <*b3*> is_applicable_to b2 )
proof end;

theorem Th41: :: ABCMIZ_0:41
for b1 being non empty reflexive transitive non void TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds
( b3 ^ b4 is_applicable_to b2 implies ( b3 is_applicable_to b2 & b4 is_applicable_to b3 ast b2 ) )
proof end;

theorem Th42: :: ABCMIZ_0:42
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 implies for b4, b5 being natural number holds
( 1 <= b4 & b4 <= b5 & b5 <= (len b3) + 1 implies for b6, b7 being type of b1 holds
( b6 = (apply b3,b2) . b4 & b7 = (apply b3,b2) . b5 implies b7 <= b6 ) ) )
proof end;

theorem Th43: :: ABCMIZ_0:43
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 implies for b4 being type of b1 holds
( b4 in rng (apply b3,b2) implies ( b3 ast b2 <= b4 & b4 <= b2 ) ) )
proof end;

theorem Th44: :: ABCMIZ_0:44
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 implies b3 ast b2 <= b2 )
proof end;

theorem Th45: :: ABCMIZ_0:45
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 implies rng b3 c= adjs (b3 ast b2) )
proof end;

theorem Th46: :: ABCMIZ_0:46
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 implies for b4 being Subset of the adjectives of b1 holds
( b4 = rng b3 implies b4 is_applicable_to b2 ) )
proof end;

theorem Th47: :: ABCMIZ_0:47
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 & rng b4 c= rng b3 implies for b5 being type of b1 holds
( b5 in rng (apply b4,b2) implies b3 ast b2 <= b5 ) )
proof end;

theorem Th48: :: ABCMIZ_0:48
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds
( b3 ^ b4 is_applicable_to b2 implies b4 ^ b3 is_applicable_to b2 )
proof end;

theorem Th49: :: ABCMIZ_0:49
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds
( b3 ^ b4 is_applicable_to b2 implies (b3 ^ b4) ast b2 = (b4 ^ b3) ast b2 )
proof end;

theorem Th50: :: ABCMIZ_0:50
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 is_applicable_to b2 implies b3 ast b2 <= b2 )
proof end;

theorem Th51: :: ABCMIZ_0:51
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 is_applicable_to b2 implies b3 c= adjs (b3 ast b2) )
proof end;

theorem Th52: :: ABCMIZ_0:52
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 is_applicable_to b2 implies b3 ast b2 in types b3 )
proof end;

theorem Th53: :: ABCMIZ_0:53
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1
for b4 being type of b1 holds
( b4 <= b2 & b3 c= adjs b4 implies ( b3 is_applicable_to b2 & b4 <= b3 ast b2 ) )
proof end;

theorem Th54: :: ABCMIZ_0:54
for b1 being reflexive transitive antisymmetric with_suprema Noetherian adj-structured TA-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 c= adjs b2 implies ( b3 is_applicable_to b2 & b3 ast b2 = b2 ) )
proof end;

theorem Th55: :: ABCMIZ_0:55
for b1 being TA-structure
for b2 being type of b1
for b3, b4 being Subset of the adjectives of b1 holds
( b3 is_applicable_to b2 & b4 c= b3 implies b4 is_applicable_to b2 )
proof end;

theorem Th56: :: ABCMIZ_0:56
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being adjective of b1
for b4, b5 being Subset of the adjectives of b1 holds
( b5 = b4 \/ {b3} & b5 is_applicable_to b2 implies b3 ast (b4 ast b2) = b5 ast b2 )
proof end;

theorem Th57: :: ABCMIZ_0:57
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TA-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_applicable_to b2 implies for b4 being Subset of the adjectives of b1 holds
( b4 = rng b3 implies b3 ast b2 = b4 ast b2 ) )
proof end;

definition
let c1 be non empty non void TA-structure ;
func sub c1 -> Function of the adjectives of a1,the carrier of a1 means :Def22: :: ABCMIZ_0:def 22
for b1 being adjective of a1 holds a2 . b1 = sup ((types b1) \/ (types (non- b1)));
existence
ex b1 being Function of the adjectives of c1,the carrier of c1 st
for b2 being adjective of c1 holds b1 . b2 = sup ((types b2) \/ (types (non- b2)))
proof end;
uniqueness
for b1, b2 being Function of the adjectives of c1,the carrier of c1 holds
( ( for b3 being adjective of c1 holds b1 . b3 = sup ((types b3) \/ (types (non- b3))) ) & ( for b3 being adjective of c1 holds b2 . b3 = sup ((types b3) \/ (types (non- b3))) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def22 defines sub ABCMIZ_0:def 22 :
for b1 being non empty non void TA-structure
for b2 being Function of the adjectives of b1,the carrier of b1 holds
( b2 = sub b1 iff for b3 being adjective of b1 holds b2 . b3 = sup ((types b3) \/ (types (non- b3))) );

definition
attr a1 is strict;
struct TAS-structure -> TA-structure ;
aggr TAS-structure(# carrier, adjectives, InternalRel, non-op, adj-map, sub-map #) -> TAS-structure ;
sel sub-map c1 -> Function of the adjectives of a1,the carrier of a1;
end;

registration
cluster non empty trivial reflexive complete Noetherian Mizar-widening-like non void strict TAS-structure ;
existence
ex b1 being TAS-structure st
( not b1 is void & b1 is reflexive & b1 is trivial & not b1 is empty & b1 is strict )
proof end;
end;

definition
let c1 be non empty non void TAS-structure ;
let c2 be adjective of c1;
func sub c2 -> type of a1 equals :: ABCMIZ_0:def 23
the sub-map of a1 . a2;
coherence
the sub-map of c1 . c2 is type of c1
;
end;

:: deftheorem Def23 defines sub ABCMIZ_0:def 23 :
for b1 being non empty non void TAS-structure
for b2 being adjective of b1 holds sub b2 = the sub-map of b1 . b2;

definition
let c1 be non empty non void TAS-structure ;
attr a1 is non-absorbing means :: ABCMIZ_0:def 24
the sub-map of a1 * the non-op of a1 = the sub-map of a1;
attr a1 is subjected means :: ABCMIZ_0:def 25
for b1 being adjective of a1 holds
( (types b1) \/ (types (non- b1)) is_<=_than sub b1 & ( types b1 <> {} & types (non- b1) <> {} implies sub b1 = sup ((types b1) \/ (types (non- b1))) ) );
end;

:: deftheorem Def24 defines non-absorbing ABCMIZ_0:def 24 :
for b1 being non empty non void TAS-structure holds
( b1 is non-absorbing iff the sub-map of b1 * the non-op of b1 = the sub-map of b1 );

:: deftheorem Def25 defines subjected ABCMIZ_0:def 25 :
for b1 being non empty non void TAS-structure holds
( b1 is subjected iff for b2 being adjective of b1 holds
( (types b2) \/ (types (non- b2)) is_<=_than sub b2 & ( types b2 <> {} & types (non- b2) <> {} implies sub b2 = sup ((types b2) \/ (types (non- b2))) ) ) );

definition
let c1 be non empty non void TAS-structure ;
redefine attr a1 is non-absorbing means :: ABCMIZ_0:def 26
for b1 being adjective of a1 holds sub (non- b1) = sub b1;
compatibility
( c1 is non-absorbing iff for b1 being adjective of c1 holds sub (non- b1) = sub b1 )
proof end;
end;

:: deftheorem Def26 defines non-absorbing ABCMIZ_0:def 26 :
for b1 being non empty non void TAS-structure holds
( b1 is non-absorbing iff for b2 being adjective of b1 holds sub (non- b2) = sub b2 );

definition
let c1 be non empty non void TAS-structure ;
let c2 be Element of c1;
let c3 be adjective of c1;
pred c3 is_properly_applicable_to c2 means :Def27: :: ABCMIZ_0:def 27
( a2 <= sub a3 & a3 is_applicable_to a2 );
end;

:: deftheorem Def27 defines is_properly_applicable_to ABCMIZ_0:def 27 :
for b1 being non empty non void TAS-structure
for b2 being Element of b1
for b3 being adjective of b1 holds
( b3 is_properly_applicable_to b2 iff ( b2 <= sub b3 & b3 is_applicable_to b2 ) );

definition
let c1 be non empty reflexive transitive non void TAS-structure ;
let c2 be type of c1;
let c3 be FinSequence of the adjectives of c1;
pred c3 is_properly_applicable_to c2 means :Def28: :: ABCMIZ_0:def 28
for b1 being natural number
for b2 being adjective of a1
for b3 being type of a1 holds
( b1 in dom a3 & b2 = a3 . b1 & b3 = (apply a3,a2) . b1 implies b2 is_properly_applicable_to b3 );
end;

:: deftheorem Def28 defines is_properly_applicable_to ABCMIZ_0:def 28 :
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_properly_applicable_to b2 iff for b4 being natural number
for b5 being adjective of b1
for b6 being type of b1 holds
( b4 in dom b3 & b5 = b3 . b4 & b6 = (apply b3,b2) . b4 implies b5 is_properly_applicable_to b6 ) );

theorem Th58: :: ABCMIZ_0:58
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3 being FinSequence of the adjectives of b1 holds
( b3 is_properly_applicable_to b2 implies b3 is_applicable_to b2 )
proof end;

theorem Th59: :: ABCMIZ_0:59
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1 holds <*> the adjectives of b1 is_properly_applicable_to b2
proof end;

theorem Th60: :: ABCMIZ_0:60
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 is_properly_applicable_to b2 iff <*b3*> is_properly_applicable_to b2 )
proof end;

theorem Th61: :: ABCMIZ_0:61
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds
( b3 ^ b4 is_properly_applicable_to b2 implies ( b3 is_properly_applicable_to b2 & b4 is_properly_applicable_to b3 ast b2 ) )
proof end;

theorem Th62: :: ABCMIZ_0:62
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3, b4 being FinSequence of the adjectives of b1 holds
( b3 is_properly_applicable_to b2 & b4 is_properly_applicable_to b3 ast b2 implies b3 ^ b4 is_properly_applicable_to b2 )
proof end;

definition
let c1 be non empty reflexive transitive non void TAS-structure ;
let c2 be type of c1;
let c3 be Subset of the adjectives of c1;
pred c3 is_properly_applicable_to c2 means :Def29: :: ABCMIZ_0:def 29
ex b1 being FinSequence of the adjectives of a1 st
( rng b1 = a3 & b1 is_properly_applicable_to a2 );
end;

:: deftheorem Def29 defines is_properly_applicable_to ABCMIZ_0:def 29 :
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 is_properly_applicable_to b2 iff ex b4 being FinSequence of the adjectives of b1 st
( rng b4 = b3 & b4 is_properly_applicable_to b2 ) );

theorem Th63: :: ABCMIZ_0:63
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
( b3 is_properly_applicable_to b2 implies b3 is finite )
proof end;

theorem Th64: :: ABCMIZ_0:64
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1 holds {} the adjectives of b1 is_properly_applicable_to b2
proof end;

scheme :: ABCMIZ_0:sch 1
s1{ P1[ set ] } :
ex b1 being finite set st
( P1[b1] & ( for b2 being set holds
( b2 c= b1 & P1[b2] implies b2 = b1 ) ) )
provided
E65: ex b1 being finite set st P1[b1]
proof end;

theorem Th65: :: ABCMIZ_0:65
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
not ( b3 is_properly_applicable_to b2 & ( for b4 being Subset of the adjectives of b1 holds
not ( b4 c= b3 & b4 is_properly_applicable_to b2 & b3 ast b2 = b4 ast b2 & ( for b5 being Subset of the adjectives of b1 holds
( b5 c= b4 & b5 is_properly_applicable_to b2 & b3 ast b2 = b5 ast b2 implies b5 = b4 ) ) ) ) )
proof end;

definition
let c1 be non empty reflexive transitive non void TAS-structure ;
attr a1 is commutative means :Def30: :: ABCMIZ_0:def 30
for b1, b2 being type of a1
for b3 being adjective of a1 holds
not ( b3 is_properly_applicable_to b1 & b3 ast b1 <= b2 & ( for b4 being finite Subset of the adjectives of a1 holds
not ( b4 is_properly_applicable_to b1 "\/" b2 & b4 ast (b1 "\/" b2) = b2 ) ) );
end;

:: deftheorem Def30 defines commutative ABCMIZ_0:def 30 :
for b1 being non empty reflexive transitive non void TAS-structure holds
( b1 is commutative iff for b2, b3 being type of b1
for b4 being adjective of b1 holds
not ( b4 is_properly_applicable_to b2 & b4 ast b2 <= b3 & ( for b5 being finite Subset of the adjectives of b1 holds
not ( b5 is_properly_applicable_to b2 "\/" b3 & b5 ast (b2 "\/" b3) = b3 ) ) ) );

registration
cluster non empty trivial reflexive transitive antisymmetric complete upper-bounded Noetherian Mizar-widening-like non void involutive without_fixpoints consistent adj-structured adjs-typed strict non-absorbing subjected commutative TAS-structure ;
existence
ex b1 being non empty trivial reflexive transitive antisymmetric complete upper-bounded non void strict TAS-structure st
( b1 is Mizar-widening-like & b1 is involutive & b1 is without_fixpoints & b1 is consistent & b1 is adj-structured & b1 is adjs-typed & b1 is non-absorbing & b1 is subjected & b1 is commutative )
proof end;
end;

theorem Th66: :: ABCMIZ_0:66
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure
for b2 being type of b1
for b3 being Subset of the adjectives of b1 holds
not ( b3 is_properly_applicable_to b2 & ( for b4 being one-to-one FinSequence of the adjectives of b1 holds
not ( rng b4 = b3 & b4 is_properly_applicable_to b2 ) ) )
proof end;

definition
let c1 be non empty reflexive transitive non void TAS-structure ;
func c1 @--> -> Relation of a1 means :Def31: :: ABCMIZ_0:def 31
for b1, b2 being type of a1 holds
( [b1,b2] in a2 iff ex b3 being adjective of a1 st
( not b3 in adjs b2 & b3 is_properly_applicable_to b2 & b3 ast b2 = b1 ) );
existence
ex b1 being Relation of c1 st
for b2, b3 being type of c1 holds
( [b2,b3] in b1 iff ex b4 being adjective of c1 st
( not b4 in adjs b3 & b4 is_properly_applicable_to b3 & b4 ast b3 = b2 ) )
proof end;
uniqueness
for b1, b2 being Relation of c1 holds
( ( for b3, b4 being type of c1 holds
( [b3,b4] in b1 iff ex b5 being adjective of c1 st
( not b5 in adjs b4 & b5 is_properly_applicable_to b4 & b5 ast b4 = b3 ) ) ) & ( for b3, b4 being type of c1 holds
( [b3,b4] in b2 iff ex b5 being adjective of c1 st
( not b5 in adjs b4 & b5 is_properly_applicable_to b4 & b5 ast b4 = b3 ) ) ) implies b1 = b2 )
proof end;
end;

:: deftheorem Def31 defines @--> ABCMIZ_0:def 31 :
for b1 being non empty reflexive transitive non void TAS-structure
for b2 being Relation of b1 holds
( b2 = b1 @--> iff for b3, b4 being type of b1 holds
( [b3,b4] in b2 iff ex b5 being adjective of b1 st
( not b5 in adjs b4 & b5 is_properly_applicable_to b4 & b5 ast b4 = b3 ) ) );

theorem Th67: :: ABCMIZ_0:67
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure holds b1 @--> c= the InternalRel of b1
proof end;

scheme :: ABCMIZ_0:sch 2
s2{ F1() -> non empty set , P1[ set , set ], F2() -> Relation of F1() } :
for b1, b2 being Element of F1() holds
( F2() reduces b1,b2 implies P1[b1,b2] )
provided
E70: for b1, b2 being Element of F1() holds
( [b1,b2] in F2() implies P1[b1,b2] ) and E71: for b1 being Element of F1() holds P1[b1,b1] and E72: for b1, b2, b3 being Element of F1() holds
( P1[b1,b2] & P1[b2,b3] implies P1[b1,b3] )
proof end;

theorem Th68: :: ABCMIZ_0:68
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure
for b2, b3 being type of b1 holds
( b1 @--> reduces b2,b3 implies b2 <= b3 )
proof end;

theorem Th69: :: ABCMIZ_0:69
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure holds b1 @--> is irreflexive
proof end;

theorem Th70: :: ABCMIZ_0:70
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure holds b1 @--> is strongly-normalizing
proof end;

theorem Th71: :: ABCMIZ_0:71
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure
for b2 being type of b1
for b3 being finite Subset of the adjectives of b1 holds
( ( for b4 being Subset of the adjectives of b1 holds
( b4 c= b3 & b4 is_properly_applicable_to b2 & b3 ast b2 = b4 ast b2 implies b4 = b3 ) ) implies for b4 being one-to-one FinSequence of the adjectives of b1 holds
( rng b4 = b3 & b4 is_properly_applicable_to b2 implies for b5 being natural number holds
( 1 <= b5 & b5 <= len b4 implies [((apply b4,b2) . (b5 + 1)),((apply b4,b2) . b5)] in b1 @--> ) ) )
proof end;

theorem Th72: :: ABCMIZ_0:72
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure
for b2 being type of b1
for b3 being finite Subset of the adjectives of b1 holds
( ( for b4 being Subset of the adjectives of b1 holds
( b4 c= b3 & b4 is_properly_applicable_to b2 & b3 ast b2 = b4 ast b2 implies b4 = b3 ) ) implies for b4 being one-to-one FinSequence of the adjectives of b1 holds
( rng b4 = b3 & b4 is_properly_applicable_to b2 implies Rev (apply b4,b2) is RedSequence of b1 @--> ) )
proof end;

theorem Th73: :: ABCMIZ_0:73
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure
for b2 being type of b1
for b3 being finite Subset of the adjectives of b1 holds
( b3 is_properly_applicable_to b2 implies b1 @--> reduces b3 ast b2,b2 )
proof end;

theorem Th74: :: ABCMIZ_0:74
for b1 being non empty set
for b2 being Relation of b1
for b3 being RedSequence of b2 holds
( b3 . 1 in b1 implies b3 is FinSequence of b1 )
proof end;

theorem Th75: :: ABCMIZ_0:75
for b1 being non empty set
for b2 being Relation of b1
for b3 being Element of b1
for b4 being set holds
( b2 reduces b3,b4 implies b4 in b1 )
proof end;

theorem Th76: :: ABCMIZ_0:76
for b1 being non empty set
for b2 being Relation of b1 holds
( b2 is with_UN_property & b2 is weakly-normalizing implies for b3 being Element of b1 holds nf b3,b2 in b1 )
proof end;

theorem Th77: :: ABCMIZ_0:77
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured TAS-structure
for b2, b3 being type of b1 holds
not ( b1 @--> reduces b2,b3 & ( for b4 being finite Subset of the adjectives of b1 holds
not ( b4 is_properly_applicable_to b3 & b2 = b4 ast b3 ) ) )
proof end;

theorem Th78: :: ABCMIZ_0:78
for b1 being reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure holds
( b1 @--> is with_Church-Rosser_property & b1 @--> is with_UN_property )
proof end;

definition
let c1 be non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure ;
let c2 be type of c1;
func radix c2 -> type of a1 equals :: ABCMIZ_0:def 32
nf a2,(a1 @--> );
coherence
nf c2,(c1 @--> ) is type of c1
proof end;
end;

:: deftheorem Def32 defines radix ABCMIZ_0:def 32 :
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2 being type of b1 holds radix b2 = nf b2,(b1 @--> );

theorem Th79: :: ABCMIZ_0:79
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2 being type of b1 holds b1 @--> reduces b2, radix b2
proof end;

theorem Th80: :: ABCMIZ_0:80
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2 being type of b1 holds b2 <= radix b2
proof end;

theorem Th81: :: ABCMIZ_0:81
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2 being type of b1
for b3 being set holds
( b3 = { b4 where B is type of b1 : ex b1 being finite Subset of the adjectives of b1 st
( b5 is_properly_applicable_to b4 & b5 ast b4 = b2 )
}
implies ( ex_sup_of b3,b1 & radix b2 = "\/" b3,b1 ) )
proof end;

theorem Th82: :: ABCMIZ_0:82
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2, b3 being type of b1
for b4 being adjective of b1 holds
( b4 is_properly_applicable_to b2 & b4 ast b2 <= radix b3 implies b2 <= radix b3 )
proof end;

theorem Th83: :: ABCMIZ_0:83
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2, b3 being type of b1 holds
( b2 <= b3 implies radix b2 <= radix b3 )
proof end;

theorem Th84: :: ABCMIZ_0:84
for b1 being non empty reflexive transitive antisymmetric with_suprema Noetherian non void adj-structured commutative TAS-structure
for b2 being type of b1
for b3 being adjective of b1 holds
( b3 is_properly_applicable_to b2 implies radix (b3 ast b2) = radix b2 )
proof end;