:: On semilattice structure of {M}izar types :: by Grzegorz Bancerek :: :: Received August 8, 2003 :: Copyright (c) 2003-2021 Association of Mizar Users :: (Stowarzyszenie Uzytkownikow Mizara, Bialystok, Poland). :: This code can be distributed under the GNU General Public Licence :: version 3.0 or later, or the Creative Commons Attribution-ShareAlike :: License version 3.0 or later, subject to the binding interpretation :: detailed in file COPYING.interpretation. :: See COPYING.GPL and COPYING.CC-BY-SA for the full text of these :: licenses, or see http://www.gnu.org/licenses/gpl.html and :: http://creativecommons.org/licenses/by-sa/3.0/. environ vocabularies NUMBERS, ZFMISC_1, RELAT_2, REWRITE1, XBOOLE_0, ORDERS_2, PRELAMB, SUBSET_1, IDEAL_1, TARSKI, RELAT_1, STRUCT_0, ARYTM_3, XXREAL_0, WAYBEL_0, LATTICE3, LATTICES, EQREL_1, CARD_FIL, YELLOW_0, ORDINAL2, BINOP_1, FUNCT_1, OPOSET_1, CARD_1, FUNCOP_1, FINSUB_1, YELLOW_1, ARYTM_0, WELLORD2, FINSEQ_1, FUNCT_7, NAT_1, ORDINAL4, FINSET_1, FINSEQ_5, ARYTM_1, ABCMIZ_0, ABIAN, XCMPLX_0; notations TARSKI, XBOOLE_0, ZFMISC_1, RELAT_1, RELAT_2, SUBSET_1, ORDINAL1, FINSUB_1, CARD_1, FUNCT_1, RELSET_1, PARTFUN1, FUNCT_2, BINOP_1, ORDERS_1, FUNCOP_1, FINSET_1, FINSEQ_1, FUNCT_4, ALG_1, FINSEQ_5, NUMBERS, XCMPLX_0, NAT_1, DOMAIN_1, STRUCT_0, ORDERS_2, LATTICE3, REWRITE1, YELLOW_0, WAYBEL_0, YELLOW_1, YELLOW_7, XXREAL_0; constructors FINSUB_1, NAT_1, FINSEQ_5, REWRITE1, BORSUK_1, LATTICE3, WAYBEL_0, YELLOW_1, FUNCOP_1, XREAL_0, NUMBERS; registrations XBOOLE_0, SUBSET_1, RELAT_1, FUNCT_2, FINSET_1, FINSUB_1, XXREAL_0, XREAL_0, NAT_1, FINSEQ_1, REWRITE1, STRUCT_0, LATTICE3, YELLOW_0, WAYBEL_0, YELLOW_1, YELLOW_7, YELLOW_9, ORDINAL1, CARD_1, RELSET_1; requirements BOOLE, SUBSET, NUMERALS, REAL, ARITHM; begin :: Semilattice of type widening registration cluster reflexive -> complete for 1-element RelStr; end; definition let T be RelStr; mode type of T is Element of T; end; definition let T be RelStr; attr T is Noetherian means :: ABCMIZ_0:def 1 the InternalRel of T is co-well_founded; end; registration cluster -> Noetherian for 1-element RelStr; end; definition let T be non empty RelStr; redefine attr T is Noetherian means :: ABCMIZ_0:def 2 for A being non empty Subset of T ex a being Element of T st a in A & for b being Element of T st b in A holds not a < b; end; definition let T be Poset; attr T is Mizar-widening-like means :: ABCMIZ_0:def 3 T is sup-Semilattice & T is Noetherian; end; registration cluster Mizar-widening-like -> Noetherian with_suprema upper-bounded for Poset; end; registration cluster Noetherian -> Mizar-widening-like for sup-Semilattice; end; registration cluster Mizar-widening-like for complete sup-Semilattice; end; registration let T be Noetherian RelStr; cluster the InternalRel of T -> co-well_founded; end; theorem :: ABCMIZ_0:1 for T being Noetherian sup-Semilattice for I being Ideal of T holds ex_sup_of I, T & sup I in I; begin :: Adjectives definition struct AdjectiveStr (# adjectives -> set, non-op -> UnOp of the adjectives #); end; definition let A be AdjectiveStr; attr A is void means :: ABCMIZ_0:def 4 the adjectives of A is empty; mode adjective of A is Element of the adjectives of A; end; theorem :: ABCMIZ_0:2 for A1,A2 being AdjectiveStr st the adjectives of A1 = the adjectives of A2 holds A1 is void implies A2 is void; definition let A be AdjectiveStr; let a be Element of the adjectives of A; func non-a -> adjective of A equals :: ABCMIZ_0:def 5 (the non-op of A).a; end; theorem :: ABCMIZ_0:3 for A1,A2 being AdjectiveStr st the AdjectiveStr of A1 = the AdjectiveStr of A2 for a1 being adjective of A1, a2 being adjective of A2 st a1 = a2 holds non-a1 = non-a2; definition let A be AdjectiveStr; attr A is involutive means :: ABCMIZ_0:def 6 for a being adjective of A holds non-non-a = a; attr A is without_fixpoints means :: ABCMIZ_0:def 7 not ex a being adjective of A st non-a = a; end; theorem :: ABCMIZ_0:4 for a1,a2 being set st a1 <> a2 for A being AdjectiveStr st the adjectives of A = {a1,a2} & (the non-op of A).a1 = a2 & (the non-op of A).a2 = a1 holds A is non void involutive without_fixpoints; theorem :: ABCMIZ_0:5 for A1,A2 being AdjectiveStr st the AdjectiveStr of A1 = the AdjectiveStr of A2 holds A1 is involutive implies A2 is involutive; theorem :: ABCMIZ_0:6 for A1,A2 being AdjectiveStr st the AdjectiveStr of A1 = the AdjectiveStr of A2 holds A1 is without_fixpoints implies A2 is without_fixpoints; registration cluster non void involutive without_fixpoints for strict AdjectiveStr; end; registration let A be non void AdjectiveStr; cluster the adjectives of A -> non empty; end; definition struct(RelStr,AdjectiveStr) TA-structure(# carrier, adjectives -> set, InternalRel -> (Relation of the carrier), non-op -> UnOp of the adjectives, adj-map -> Function of the carrier, Fin the adjectives #); end; registration let X be non empty set; let A be set; let r be Relation of X; let n be UnOp of A; let a be Function of X, Fin A; cluster TA-structure(#X,A,r,n,a#) -> non empty; end; registration let X be set; let A be non empty set; let r be Relation of X; let n be UnOp of A; let a be Function of X, Fin A; cluster TA-structure(#X,A,r,n,a#) -> non void; end; registration cluster 1-element reflexive non void involutive without_fixpoints strict for TA-structure; end; definition let T be TA-structure; let t be Element of T; func adjs t -> Subset of the adjectives of T equals :: ABCMIZ_0:def 8 (the adj-map of T).t; end; theorem :: ABCMIZ_0:7 for T1,T2 being TA-structure st the TA-structure of T1 = the TA-structure of T2 for t1 being type of T1, t2 being type of T2 st t1 = t2 holds adjs t1 = adjs t2; definition let T be TA-structure; attr T is consistent means :: ABCMIZ_0:def 9 for t being type of T for a being adjective of T st a in adjs t holds not non-a in adjs t; end; theorem :: ABCMIZ_0:8 for T1,T2 being TA-structure st the TA-structure of T1 = the TA-structure of T2 holds T1 is consistent implies T2 is consistent; definition let T be non empty TA-structure; attr T is adj-structured means :: ABCMIZ_0:def 10 the adj-map of T is join-preserving Function of T, (BoolePoset the adjectives of T) opp; end; theorem :: ABCMIZ_0:9 for T1,T2 being non empty TA-structure st the TA-structure of T1 = the TA-structure of T2 holds T1 is adj-structured implies T2 is adj-structured; definition let T be reflexive transitive antisymmetric with_suprema TA-structure; redefine attr T is adj-structured means :: ABCMIZ_0:def 11 for t1,t2 being type of T holds adjs(t1"\/"t2) = (adjs t1) /\ (adjs t2); end; theorem :: ABCMIZ_0:10 for T being reflexive transitive antisymmetric with_suprema TA-structure st T is adj-structured for t1,t2 being type of T st t1 <= t2 holds adjs t2 c= adjs t1; definition let T be TA-structure; let a be Element of the adjectives of T; func types a -> Subset of T means :: ABCMIZ_0:def 12 for x being object holds x in it iff ex t being type of T st x = t & a in adjs t; end; definition let T be non empty TA-structure; let A be Subset of the adjectives of T; func types A -> Subset of T means :: ABCMIZ_0:def 13 for t being type of T holds t in it iff for a being adjective of T st a in A holds t in types a; end; theorem :: ABCMIZ_0:11 for T1,T2 being TA-structure st the TA-structure of T1 = the TA-structure of T2 for a1 being adjective of T1, a2 being adjective of T2 st a1 = a2 holds types a1 = types a2; theorem :: ABCMIZ_0:12 for T being non empty TA-structure for a being adjective of T holds types a = {t where t is type of T: a in adjs t}; theorem :: ABCMIZ_0:13 for T being TA-structure for t being type of T, a being adjective of T holds a in adjs t iff t in types a; theorem :: ABCMIZ_0:14 for T being non empty TA-structure for t being type of T, A being Subset of the adjectives of T holds A c= adjs t iff t in types A; theorem :: ABCMIZ_0:15 for T being non void TA-structure for t being type of T holds adjs t = {a where a is adjective of T: t in types a}; theorem :: ABCMIZ_0:16 for T being non empty TA-structure holds types ({} the adjectives of T) = the carrier of T; definition let T be TA-structure; attr T is adjs-typed means :: ABCMIZ_0:def 14 for a being adjective of T holds types a \/ types non-a is non empty; end; theorem :: ABCMIZ_0:17 for T1,T2 being TA-structure st the TA-structure of T1 = the TA-structure of T2 holds T1 is adjs-typed implies T2 is adjs-typed; registration cluster non void Mizar-widening-like involutive without_fixpoints consistent adj-structured adjs-typed for complete upper-bounded 1-element reflexive transitive antisymmetric strict TA-structure; end; theorem :: ABCMIZ_0:18 for T being consistent TA-structure for a being adjective of T holds types a misses types non-a; registration let T be adj-structured reflexive transitive antisymmetric with_suprema TA-structure; let a be adjective of T; cluster types a -> lower directed; end; registration let T be adj-structured reflexive transitive antisymmetric with_suprema TA-structure; let A be Subset of the adjectives of T; cluster types A -> lower directed; end; begin :: Applicability of adjectives definition let T be TA-structure; let t be Element of T; let a be adjective of T; pred a is_applicable_to t means :: ABCMIZ_0:def 15 ex t9 being type of T st t9 in types a & t9 <= t; end; definition let T be TA-structure; let t be type of T; let A be Subset of the adjectives of T; pred A is_applicable_to t means :: ABCMIZ_0:def 16 ex t9 being type of T st A c= adjs t9 & t9 <= t; end; theorem :: ABCMIZ_0:19 for T being adj-structured reflexive transitive antisymmetric with_suprema TA-structure for a being adjective of T for t being type of T st a is_applicable_to t holds types a /\ downarrow t is Ideal of T; definition let T be non empty reflexive transitive TA-structure; let t be Element of T; let a be adjective of T; func a ast t -> type of T equals :: ABCMIZ_0:def 17 sup(types a /\ downarrow t); end; theorem :: ABCMIZ_0:20 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for a being adjective of T st a is_applicable_to t holds a ast t <= t; theorem :: ABCMIZ_0:21 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for a being adjective of T st a is_applicable_to t holds a in adjs(a ast t); theorem :: ABCMIZ_0:22 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for a being adjective of T st a is_applicable_to t holds a ast t in types a; theorem :: ABCMIZ_0:23 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for a being adjective of T for t9 being type of T st t9 <= t & a in adjs t9 holds a is_applicable_to t & t9 <= a ast t; theorem :: ABCMIZ_0:24 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for a being adjective of T st a in adjs t holds a is_applicable_to t & a ast t = t; theorem :: ABCMIZ_0:25 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for a,b being adjective of T st a is_applicable_to t & b is_applicable_to a ast t holds b is_applicable_to t & a is_applicable_to b ast t & a ast (b ast t) = b ast (a ast t); theorem :: ABCMIZ_0:26 for T being adj-structured reflexive transitive antisymmetric with_suprema TA-structure for A being Subset of the adjectives of T for t being type of T st A is_applicable_to t holds types A /\ downarrow t is Ideal of T; definition let T be non empty reflexive transitive TA-structure; let t be type of T; let A be Subset of the adjectives of T; func A ast t -> type of T equals :: ABCMIZ_0:def 18 sup(types A /\ downarrow t); end; theorem :: ABCMIZ_0:27 for T being non empty reflexive transitive antisymmetric TA-structure for t being type of T holds ({} the adjectives of T) ast t = t; definition let T be non empty non void reflexive transitive TA-structure; let t be type of T; let p be FinSequence of the adjectives of T; func apply(p,t) -> FinSequence of the carrier of T means :: ABCMIZ_0:def 19 len it = len p+1 & it.1 = t & for i being Element of NAT, a being adjective of T, t being type of T st i in dom p & a = p.i & t = it.i holds it.(i+1) = a ast t; end; registration let T be non empty non void reflexive transitive TA-structure; let t be type of T; let p be FinSequence of the adjectives of T; cluster apply(p,t) -> non empty; end; theorem :: ABCMIZ_0:28 for T being non empty non void reflexive transitive TA-structure for t being type of T holds apply(<*> the adjectives of T, t) = <*t*>; theorem :: ABCMIZ_0:29 for T being non empty non void reflexive transitive TA-structure for t being type of T, a be adjective of T holds apply(<*a*>, t) = <*t, a ast t *>; definition let T be non empty non void reflexive transitive TA-structure; let t be type of T; let v be FinSequence of the adjectives of T; func v ast t -> type of T equals :: ABCMIZ_0:def 20 apply(v,t).(len v+1); end; theorem :: ABCMIZ_0:30 for T being non empty non void reflexive transitive TA-structure for t being type of T holds (<*> the adjectives of T) ast t = t; theorem :: ABCMIZ_0:31 for T being non empty non void reflexive transitive TA-structure for t being type of T for a being adjective of T holds <*a*> ast t = a ast t; theorem :: ABCMIZ_0:32 for p,q being FinSequence for i being Nat st i >= 1 & i < len p holds (p$^q).i = p.i; theorem :: ABCMIZ_0:33 for p being non empty FinSequence, q being FinSequence for i being Nat st i < len q holds (p$^q).(len p+i) = q.(i+1); theorem :: ABCMIZ_0:34 for T being non empty non void reflexive transitive TA-structure for t being type of T for v1,v2 being FinSequence of the adjectives of T holds apply(v1^v2, t) = apply(v1, t) $^ apply(v2, v1 ast t); theorem :: ABCMIZ_0:35 for T being non empty non void reflexive transitive TA-structure for t being type of T for v1,v2 being FinSequence of the adjectives of T for i being Nat st i in dom v1 holds apply(v1^v2, t).i = apply(v1, t).i; theorem :: ABCMIZ_0:36 for T being non empty non void reflexive transitive TA-structure for t being type of T for v1,v2 being FinSequence of the adjectives of T holds apply(v1^v2, t).(len v1+1) = v1 ast t; theorem :: ABCMIZ_0:37 for T being non empty non void reflexive transitive TA-structure for t being type of T for v1,v2 being FinSequence of the adjectives of T holds v2 ast (v1 ast t) = v1^v2 ast t; definition let T be non empty non void reflexive transitive TA-structure; let t be type of T; let v be FinSequence of the adjectives of T; pred v is_applicable_to t means :: ABCMIZ_0:def 21 for i being Nat, a being adjective of T, s being type of T st i in dom v & a = v.i & s = apply(v,t).i holds a is_applicable_to s; end; theorem :: ABCMIZ_0:38 for T being non empty non void reflexive transitive TA-structure for t being type of T holds <*> the adjectives of T is_applicable_to t; theorem :: ABCMIZ_0:39 for T being non empty non void reflexive transitive TA-structure for t being type of T, a being adjective of T holds a is_applicable_to t iff <*a*> is_applicable_to t; theorem :: ABCMIZ_0:40 for T being non empty non void reflexive transitive TA-structure for t being type of T for v1,v2 being FinSequence of the adjectives of T st v1^ v2 is_applicable_to t holds v1 is_applicable_to t & v2 is_applicable_to v1 ast t; theorem :: ABCMIZ_0:41 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v being FinSequence of the adjectives of T st v is_applicable_to t for i1,i2 being Nat st 1 <= i1 & i1 <= i2 & i2 <= len v+1 for t1,t2 being type of T st t1 = apply(v,t).i1 & t2 = apply(v,t).i2 holds t2 <= t1; theorem :: ABCMIZ_0:42 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v being FinSequence of the adjectives of T st v is_applicable_to t for s being type of T st s in rng apply(v, t) holds v ast t <= s & s <= t; theorem :: ABCMIZ_0:43 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v being FinSequence of the adjectives of T st v is_applicable_to t holds v ast t <= t; theorem :: ABCMIZ_0:44 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v being FinSequence of the adjectives of T st v is_applicable_to t holds rng v c= adjs (v ast t); theorem :: ABCMIZ_0:45 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v being FinSequence of the adjectives of T st v is_applicable_to t for A being Subset of the adjectives of T st A = rng v holds A is_applicable_to t; theorem :: ABCMIZ_0:46 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v1, v2 being FinSequence of the adjectives of T st v1 is_applicable_to t & rng v2 c= rng v1 for s being type of T st s in rng apply(v2,t) holds v1 ast t <= s; theorem :: ABCMIZ_0:47 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v1, v2 being FinSequence of the adjectives of T st v1^v2 is_applicable_to t holds v2^v1 is_applicable_to t; theorem :: ABCMIZ_0:48 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v1, v2 being FinSequence of the adjectives of T st v1^v2 is_applicable_to t holds v1^v2 ast t = v2^v1 ast t; theorem :: ABCMIZ_0:49 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for A being Subset of the adjectives of T st A is_applicable_to t holds A ast t <= t; theorem :: ABCMIZ_0:50 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for A being Subset of the adjectives of T st A is_applicable_to t holds A c= adjs(A ast t); theorem :: ABCMIZ_0:51 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for A being Subset of the adjectives of T st A is_applicable_to t holds A ast t in types A; theorem :: ABCMIZ_0:52 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for A being Subset of the adjectives of T for t9 being type of T st t9 <= t & A c= adjs t9 holds A is_applicable_to t & t9 <= A ast t; theorem :: ABCMIZ_0:53 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema TA-structure for t being type of T for A being Subset of the adjectives of T st A c= adjs t holds A is_applicable_to t & A ast t = t; theorem :: ABCMIZ_0:54 for T being TA-structure, t being type of T for A,B being Subset of the adjectives of T st A is_applicable_to t & B c= A holds B is_applicable_to t; theorem :: ABCMIZ_0:55 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T, a being adjective of T for A,B being Subset of the adjectives of T st B = A \/ {a } & B is_applicable_to t holds a ast (A ast t) = B ast t; theorem :: ABCMIZ_0:56 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TA-structure for t being type of T for v being FinSequence of the adjectives of T st v is_applicable_to t for A being Subset of the adjectives of T st A = rng v holds v ast t = A ast t; begin :: Subject function definition let T be non empty non void TA-structure; func sub T -> Function of the adjectives of T, the carrier of T means :: ABCMIZ_0:def 22 for a being adjective of T holds it.a = sup(types a \/ types non-a); end; definition struct(TA-structure) TAS-structure(# carrier, adjectives -> set, InternalRel -> (Relation of the carrier), non-op -> UnOp of the adjectives, adj-map -> Function of the carrier, Fin the adjectives, sub-map -> Function of the adjectives, the carrier #); end; registration cluster non void reflexive 1-element strict for TAS-structure; end; definition let T be non empty non void TAS-structure; let a be adjective of T; func sub a -> type of T equals :: ABCMIZ_0:def 23 (the sub-map of T).a; end; definition let T be non empty non void TAS-structure; attr T is non-absorbing means :: ABCMIZ_0:def 24 (the sub-map of T)*(the non-op of T) = the sub-map of T; attr T is subjected means :: ABCMIZ_0:def 25 for a being adjective of T holds types a \/ types non-a is_<=_than sub a & (types a <> {} & types non-a <> {} implies sub a = sup (types a \/ types non-a)); end; definition let T be non empty non void TAS-structure; redefine attr T is non-absorbing means :: ABCMIZ_0:def 26 for a being adjective of T holds sub non-a = sub a; end; definition let T be non empty non void TAS-structure; let t be Element of T; let a be adjective of T; pred a is_properly_applicable_to t means :: ABCMIZ_0:def 27 t <= sub a & a is_applicable_to t; end; definition let T be non empty non void reflexive transitive TAS-structure; let t be type of T; let v be FinSequence of the adjectives of T; pred v is_properly_applicable_to t means :: ABCMIZ_0:def 28 for i being Nat, a being adjective of T, s being type of T st i in dom v & a = v.i & s = apply(v ,t).i holds a is_properly_applicable_to s; end; theorem :: ABCMIZ_0:57 for T being non empty non void reflexive transitive TAS-structure for t being type of T, v being FinSequence of the adjectives of T st v is_properly_applicable_to t holds v is_applicable_to t; theorem :: ABCMIZ_0:58 for T being non empty non void reflexive transitive TAS-structure for t being type of T holds <*> the adjectives of T is_properly_applicable_to t; theorem :: ABCMIZ_0:59 for T being non empty non void reflexive transitive TAS-structure for t being type of T, a being adjective of T holds a is_properly_applicable_to t iff <*a*> is_properly_applicable_to t; theorem :: ABCMIZ_0:60 for T being non empty non void reflexive transitive TAS-structure for t being type of T, v1,v2 being FinSequence of the adjectives of T st v1^v2 is_properly_applicable_to t holds v1 is_properly_applicable_to t & v2 is_properly_applicable_to v1 ast t; theorem :: ABCMIZ_0:61 for T being non empty non void reflexive transitive TAS-structure for t being type of T, v1,v2 being FinSequence of the adjectives of T st v1 is_properly_applicable_to t & v2 is_properly_applicable_to v1 ast t holds v1^v2 is_properly_applicable_to t; definition let T be non empty non void reflexive transitive TAS-structure; let t be type of T; let A be Subset of the adjectives of T; pred A is_properly_applicable_to t means :: ABCMIZ_0:def 29 ex s being FinSequence of the adjectives of T st rng s = A & s is_properly_applicable_to t; end; theorem :: ABCMIZ_0:62 for T being non empty non void reflexive transitive TAS-structure for t being type of T, A being Subset of the adjectives of T st A is_properly_applicable_to t holds A is finite; theorem :: ABCMIZ_0:63 for T being non empty non void reflexive transitive TAS-structure for t being type of T holds {} the adjectives of T is_properly_applicable_to t; scheme :: ABCMIZ_0:sch 1 MinimalFiniteSet{P[set]}: ex A being finite set st P[A] & for B being set st B c= A & P[B] holds B = A provided ex A being finite set st P[A]; theorem :: ABCMIZ_0:64 for T being non empty non void reflexive transitive TAS-structure for t being type of T, A being Subset of the adjectives of T st A is_properly_applicable_to t ex B being Subset of the adjectives of T st B c= A & B is_properly_applicable_to t & A ast t = B ast t & for C being Subset of the adjectives of T st C c= B & C is_properly_applicable_to t & A ast t = C ast t holds C = B; definition let T be non empty non void reflexive transitive TAS-structure; attr T is commutative means :: ABCMIZ_0:def 30 for t1,t2 being type of T, a being adjective of T st a is_properly_applicable_to t1 & a ast t1 <= t2 ex A being finite Subset of the adjectives of T st A is_properly_applicable_to t1 "\/" t2 & A ast (t1 "\/" t2) = t2; end; registration cluster Mizar-widening-like involutive without_fixpoints consistent adj-structured adjs-typed non-absorbing subjected commutative for complete upper-bounded non void 1-element reflexive transitive antisymmetric strict TAS-structure; end; theorem :: ABCMIZ_0:65 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TAS-structure for t being type of T, A being Subset of the adjectives of T st A is_properly_applicable_to t ex s being one-to-one FinSequence of the adjectives of T st rng s = A & s is_properly_applicable_to t; begin :: Reduction of adjectives definition let T be non empty non void reflexive transitive TAS-structure; func T @--> -> Relation of T means :: ABCMIZ_0:def 31 for t1,t2 being type of T holds [ t1,t2] in it iff ex a being adjective of T st not a in adjs t2 & a is_properly_applicable_to t2 & a ast t2 = t1; end; theorem :: ABCMIZ_0:66 for T being adj-structured antisymmetric non void reflexive transitive with_suprema Noetherian TAS-structure holds T@--> c= the InternalRel of T; scheme :: ABCMIZ_0:sch 2 RedInd{X() -> non empty set, P[set,set], R() -> Relation of X()}: for x,y being Element of X() st R() reduces x,y holds P[x,y] provided for x,y being Element of X() st [x,y] in R() holds P[x,y] and for x being Element of X() holds P[x,x] and for x,y,z being Element of X() st P[x,y] & P[y,z] holds P[x,z]; theorem :: ABCMIZ_0:67 for T being adj-structured antisymmetric non void reflexive transitive with_suprema Noetherian TAS-structure for t1,t2 being type of T st T@--> reduces t1,t2 holds t1 <= t2; theorem :: ABCMIZ_0:68 for T being Noetherian adj-structured reflexive transitive antisymmetric non void with_suprema TAS-structure holds T@--> is irreflexive; theorem :: ABCMIZ_0:69 for T being adj-structured antisymmetric non void reflexive transitive with_suprema Noetherian TAS-structure holds T@--> is strongly-normalizing; theorem :: ABCMIZ_0:70 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TAS-structure for t being type of T, A being finite Subset of the adjectives of T st for C being Subset of the adjectives of T st C c= A & C is_properly_applicable_to t & A ast t = C ast t holds C = A for s being one-to-one FinSequence of the adjectives of T st rng s = A & s is_properly_applicable_to t for i being Nat st 1 <= i & i <= len s holds [apply(s, t).(i+1), apply(s, t).i] in T@-->; theorem :: ABCMIZ_0:71 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TAS-structure for t being type of T, A being finite Subset of the adjectives of T st for C being Subset of the adjectives of T st C c= A & C is_properly_applicable_to t & A ast t = C ast t holds C = A for s being one-to-one FinSequence of the adjectives of T st rng s = A & s is_properly_applicable_to t holds Rev apply(s, t) is RedSequence of T @-->; theorem :: ABCMIZ_0:72 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TAS-structure for t being type of T, A being finite Subset of the adjectives of T st A is_properly_applicable_to t holds T@--> reduces A ast t, t; theorem :: ABCMIZ_0:73 for X being non empty set for R being Relation of X for r being RedSequence of R st r.1 in X holds r is FinSequence of X; theorem :: ABCMIZ_0:74 for X being non empty set for R being Relation of X for x be Element of X, y being set st R reduces x,y holds y in X; theorem :: ABCMIZ_0:75 for X being non empty set for R being Relation of X st R is with_UN_property weakly-normalizing for x be Element of X holds nf(x, R) in X ; theorem :: ABCMIZ_0:76 for T being Noetherian adj-structured reflexive transitive antisymmetric with_suprema non void TAS-structure for t1, t2 being type of T st T@--> reduces t1, t2 ex A being finite Subset of the adjectives of T st A is_properly_applicable_to t2 & t1 = A ast t2; theorem :: ABCMIZ_0:77 for T being adj-structured antisymmetric commutative non void reflexive transitive with_suprema Noetherian TAS-structure holds T@--> is with_Church-Rosser_property with_UN_property; begin :: Radix types definition let T be adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure; let t be type of T; func radix t -> type of T equals :: ABCMIZ_0:def 32 nf(t, T@-->); end; theorem :: ABCMIZ_0:78 for T being adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure for t being type of T holds T@--> reduces t, radix t; theorem :: ABCMIZ_0:79 for T being adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure for t being type of T holds t <= radix t; theorem :: ABCMIZ_0:80 for T being adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure for t being type of T for X being set st X = {t9 where t9 is type of T: ex A being finite Subset of the adjectives of T st A is_properly_applicable_to t9 & A ast t9 = t} holds ex_sup_of X, T & radix t = "\/"(X, T); theorem :: ABCMIZ_0:81 for T being adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure for t1,t2 being type of T, a being adjective of T st a is_properly_applicable_to t1 & a ast t1 <= radix t2 holds t1 <= radix t2; theorem :: ABCMIZ_0:82 for T being adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure for t1,t2 being type of T st t1 <= t2 holds radix t1 <= radix t2; theorem :: ABCMIZ_0:83 for T being adj-structured with_suprema antisymmetric commutative non empty non void reflexive transitive Noetherian TAS-structure for t being type of T, a being adjective of T st a is_properly_applicable_to t holds radix (a ast t) = radix t;