:: Reduction Relations
:: by Grzegorz Bancerek
::
:: Received November 14, 1995
:: Copyright (c) 1995-2016 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, FINSEQ_1, ORDINAL4, XBOOLE_0, SUBSET_1, ARYTM_3,
RELAT_1, XXREAL_0, CARD_1, NAT_1, FUNCT_1, FINSEQ_5, ARYTM_1, TARSKI,
WELLORD1, PBOOLE, RELAT_2, FUNCOP_1, EQREL_1, REWRITE1;
notations TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, NUMBERS, XCMPLX_0, XXREAL_0,
NAT_1, FUNCT_1, RELAT_1, RELAT_2, WELLORD1, EQREL_1, FINSEQ_1, FUNCOP_1,
PBOOLE, FINSEQ_5;
constructors SETFAM_1, WELLORD1, XXREAL_0, XREAL_0, NAT_1, EQREL_1, PBOOLE,
FINSEQ_5, RELSET_1, NUMBERS;
registrations XBOOLE_0, RELAT_1, FUNCT_1, ORDINAL1, PARTFUN1, NAT_1, XXREAL_0,
XREAL_0, FINSEQ_1, CARD_1;
requirements NUMERALS, REAL, BOOLE, SUBSET, ARITHM;
definitions TARSKI, RELAT_1, RELAT_2, WELLORD1;
equalities RELAT_1;
expansions TARSKI, RELAT_2, WELLORD1;
theorems TARSKI, NAT_1, WELLORD1, RELAT_1, RELAT_2, FUNCT_1, FUNCOP_1,
FINSEQ_1, FINSEQ_5, EQREL_1, WELLORD2, XBOOLE_0, XBOOLE_1, XREAL_1,
XXREAL_0, ORDINAL1, CARD_1, PARTFUN1, XTUPLE_0;
schemes NAT_1, RELAT_1, EQREL_1, TREES_2;
begin :: Forgetting concatenation and reduction sequence
definition
let p,q be FinSequence;
func p$^q -> FinSequence means
:Def1:
it = p^q if p = {} or q = {} otherwise
ex i being Nat, r being FinSequence st len p = i+1 & r = p|Seg i &
it = r^q;
existence
proof
thus p = {} or q = {} implies ex r being FinSequence st r = p^q;
assume that
A1: p <> {} and
q <> {};
len p >= 0+1 by A1,NAT_1:13;
then consider i being Nat such that
A2: len p = 1+i by NAT_1:10;
reconsider i as Nat;
reconsider r = p|Seg i as FinSequence by FINSEQ_1:15;
take r^q, i, r;
thus thesis by A2;
end;
uniqueness;
consistency;
end;
Lm1: now
let p be FinSequence, x be Nat;
assume x in dom p;
then
A1: x in Seg len p by FINSEQ_1:def 3;
hence x <= len p & x >= 0+1 by FINSEQ_1:1;
thus x > 0 by A1,FINSEQ_1:1;
end;
Lm2: now
let p be FinSequence, x be Nat;
assume x+1 in dom p;
then x+1 <= len p by Lm1;
hence x < len p by NAT_1:13;
end;
Lm3: now
let p be FinSequence, x be Nat;
assume that
A1: x <= len p or x < len p and
A2: x >= 1 or x > 0;
x >= 0+1 by A2,NAT_1:13;
then x in Seg len p by A1,FINSEQ_1:1;
hence x in dom p by FINSEQ_1:def 3;
end;
Lm4: now
let p be FinSequence, x be Nat;
assume x < len p;
then x+1 <= len p by NAT_1:13;
hence x+1 in dom p by Lm3;
end;
reserve p,q,r for FinSequence,
x,y for object;
theorem
{}$^p = p & p$^{} = p
proof
{}^p = p & p^{} = p by FINSEQ_1:34;
hence thesis by Def1;
end;
theorem Th2:
q <> {} implies (p^<*x*>)$^q = p^q
proof
len <*x*> = 1 by FINSEQ_1:40;
then
A1: len (p^<*x*>) = len p + 1 by FINSEQ_1:22;
assume q <> {};
then consider i being Nat, r being FinSequence such that
A2: len (p^<*x*>) = i+1 and
A3: r = (p^<*x*>)|Seg i and
A4: (p^<*x*>)$^q = r^q by Def1;
i <= i+1 by NAT_1:11;
then
A5: len r = i by A2,A3,FINSEQ_1:17;
ex s being FinSequence st p^<*x*> = r^s by A3,FINSEQ_1:80;
then consider t being FinSequence such that
A6: p^t = r by A2,A1,A5,FINSEQ_1:47;
len r + 0 = len p + len t by A6,FINSEQ_1:22;
then t = {} by A2,A1,A5;
hence thesis by A4,A6,FINSEQ_1:34;
end;
theorem
(p^<*x*>)$^(<*y*>^q) = p^<*y*>^q
proof
p^<*y*>^q = p^(<*y*>^q) by FINSEQ_1:32;
hence thesis by Th2;
end;
theorem
q <> {} implies <*x*>$^q = q
proof
{}^<*x*> = <*x*> & {}^q = q by FINSEQ_1:34;
hence thesis by Th2;
end;
theorem
p <> {} implies ex x,q st p = <*x*>^q & len p = len q+1
proof
defpred P[Nat] means for p st p <> {} & len p = $1 ex x,q st p =
<*x*>^q & len p = len q+1;
assume
A1: p <> {};
now
let i be Nat;
assume
A2: for p st p <> {} & len p = i ex x,q st p = <*x*>^q & len p = len q +1;
let p;
assume that
A3: p <> {} and
A4: len p = i+1;
consider q be FinSequence,y being object such that
A5: p = q^<*y*> by A3,FINSEQ_1:46;
A6: len p = len q+len <*y*> by A5,FINSEQ_1:22;
A7: len <*y*> = 1 by FINSEQ_1:39;
per cases;
suppose
A8: q = {};
then p = <*y*> by A5,FINSEQ_1:34
.= <*y*>^{} by FINSEQ_1:34;
hence ex x,q st p = <*x*>^q & len p = len q+1 by A7,A6,A8;
end;
suppose
q <> {};
then consider x,r such that
A9: q = <*x*>^r and
A10: len q = len r+1 by A2,A4,A7,A6;
A11: len (r^<*y*>) = len r+1 by A7,FINSEQ_1:22;
p = <*x*>^(r^<*y*>) by A5,A9,FINSEQ_1:32;
hence ex x,q st p = <*x*>^q & len p = len q+1 by A7,A6,A10,A11;
end;
end;
then
A12: for i be Nat st P[i] holds P[i+1];
A13: P[ 0 ];
for i being Nat holds P[i] from NAT_1:sch 2(A13,A12);
hence thesis by A1;
end;
scheme
PathCatenation {P[set,set], p,q() -> FinSequence}:
for i being Nat st i in dom (p()$^q()) & i+1 in dom (p()$^q())
for x,y being set st x = (p( )$^q()).i & y = (p()$^q()).(i+1) holds P[x,y]
provided
A1: for i being Nat st i in dom p() & i+1 in dom p() holds P[
p().i, p().(i+1)] and
A2: for i being Nat st i in dom q() & i+1 in dom q() holds P[
q().i, q().(i+1)] and
A3: len p() > 0 & len q() > 0 & p().len p() = q().1;
p() <> {} by A3;
then consider r being FinSequence, a being object such that
A4: p() = r^<*a*> by FINSEQ_1:46;
q() <> {} by A3;
then
A5: p()$^q() = r^q() by A4,Th2;
0+1 <= len q() by A3,NAT_1:13;
then
A6: 1 in Seg len q() by FINSEQ_1:1;
A7: Seg len q() = dom q() by FINSEQ_1:def 3;
let i be Nat;
assume that
A8: i in dom (p()$^q()) and
A9: i+1 in dom (p()$^q());
A10: i >= 0+1 by A8,Lm1;
let x,y be set;
A11: i+1 >= 1 by NAT_1:11;
A12: len p() = len r + len <*a*> by A4,FINSEQ_1:22
.= len r + 1 by FINSEQ_1:40;
assume that
A13: x = (p()$^q()).i and
A14: y = (p()$^q()).(i+1);
per cases;
suppose
A15: i < len p();
then i in dom p() & i+1 in dom p() by A10,Lm3,Lm4;
then
A16: P[p().i, p().(i+1)] by A1;
A17: now
assume i+1 <= len r;
then i+1 in Seg len r by A11,FINSEQ_1:1;
then i+1 in dom r by FINSEQ_1:def 3;
hence y = r.(i+1) & r.(i+1) = p().(i+1) by A14,A4,A5,FINSEQ_1:def 7;
end;
A18: i <= len r by A12,A15,NAT_1:13;
then i in Seg len r by A10,FINSEQ_1:1;
then i in dom r by FINSEQ_1:def 3;
then
A19: x = r.i & r.i = p().i by A13,A4,A5,FINSEQ_1:def 7;
i = len r or i < len r by A18,XXREAL_0:1;
hence thesis by A3,A6,A7,A14,A5,A12,A16,A19,A17,FINSEQ_1:def 7,NAT_1:13;
end;
suppose
i >= len p();
then consider k being Nat such that
A20: i = len p()+k by NAT_1:10;
reconsider k as Nat;
A21: i = len r+(1+k) by A12,A20;
len (p()$^q()) = len r + len q() by A5,FINSEQ_1:22;
then
A22: k+1 < len q() by A9,A21,Lm2,XREAL_1:7;
then
A23: k+1+1 in dom q() by Lm4;
A24: k+1 in dom q() by A22,Lm3;
then
A25: x = q().(k+1) by A13,A5,A21,FINSEQ_1:def 7;
len r+(1+k)+1 = len r+(k+1+1);
then y = q().(k+1+1) by A14,A5,A12,A20,A23,FINSEQ_1:def 7;
hence thesis by A2,A24,A23,A25;
end;
end;
definition
let R be Relation;
mode RedSequence of R -> FinSequence means
: Def2:
len it > 0 & for i being
Nat st i in dom it & i+1 in dom it holds [it.i, it.(i+1)] in R;
existence
proof
take p = <*{}*>;
thus len p > 0;
let i be Nat;
assume that
A1: i in dom p and
A2: i+1 in dom p;
A3: dom p = {1} by FINSEQ_1:2,38;
then i = 1 by A1,TARSKI:def 1;
hence thesis by A3,A2,TARSKI:def 1;
end;
end;
registration
let R be Relation;
cluster -> non empty for RedSequence of R;
coherence by Def2,CARD_1:27;
end;
theorem Th6:
for R being Relation, a being object holds <*a*> is RedSequence of R
proof
let R be Relation, a be object;
set p = <*a*>;
thus len p > 0;
let i be Nat;
assume that
A1: i in dom p and
A2: i+1 in dom p;
A3: dom p = {1} by FINSEQ_1:2,38;
then i = 1 by A1,TARSKI:def 1;
hence thesis by A3,A2,TARSKI:def 1;
end;
theorem Th7:
for R being Relation, a,b being object st [a,b] in R holds <*a,b*>
is RedSequence of R
proof
let R be Relation, a,b be object;
assume
A1: [a,b] in R;
set p = <*a,b*>;
thus len p > 0;
let i be Nat;
assume that
A2: i in dom p and
A3: i+1 in dom p;
len p = 1+1 by FINSEQ_1:44;
then i+1 <= 1+1 by A3,Lm1;
then
A4: i <= 1 by XREAL_1:6;
i >= 1 by A2,Lm1;
then p.1 = a & i = 1 by A4,FINSEQ_1:44,XXREAL_0:1;
hence thesis by A1,FINSEQ_1:44;
end;
theorem Th8:
for R being Relation, p,q being RedSequence of R st p.len p = q.1
holds p$^q is RedSequence of R
proof
let R be Relation, p,q be RedSequence of R;
defpred P[set,set] means [$1,$2] in R;
set r = p$^q;
consider p1 being FinSequence, x being object such that
A1: p = p1^<*x*> by FINSEQ_1:46;
assume p.len p = q.1;
then
A2: len p > 0 & len q > 0 & p.len p = q.1;
r = p1^q by A1,Th2;
hence len r > 0;
A3: for i being Nat st i in dom q & i+1 in dom q holds P[q.i, q.(
i+1)] by Def2;
A4: for i being Nat st i in dom p & i+1 in dom p holds P[p.i, p.(
i+1)] by Def2;
for i being Nat st i in dom (p$^q) & i+1 in dom (p$^q) for x,
y being set st x = (p$^q).i & y = (p$^q).(i+1) holds P[x,y] from PathCatenation
(A4,A3,A2);
hence thesis;
end;
theorem Th9:
for R being Relation, p being RedSequence of R holds Rev p is
RedSequence of R~
proof
let R be Relation, p be RedSequence of R;
len p > 0;
hence len Rev p > 0 by FINSEQ_5:def 3;
let i be Nat;
assume that
A1: i in dom Rev p and
A2: i+1 in dom Rev p;
A3: len Rev p = len p by FINSEQ_5:def 3;
then
A4: dom Rev p = Seg len p by FINSEQ_1:def 3;
i+1 <= len p by A3,A2,Lm1;
then reconsider k = len p-(i+1)+1 as Nat by FINSEQ_5:1;
A5: dom p = Seg len p by FINSEQ_1:def 3;
then
A6: k in dom p by A4,A2,FINSEQ_5:2;
k = len p-i;
then k+1 in dom p by A4,A5,A1,FINSEQ_5:2;
then
A7: [p.k, p.(k+1)] in R by A6,Def2;
(Rev p).i = p.(len p-i+1) & (Rev p).(i+1) = p.(len p-(i+1)+1) by A1,A2,
FINSEQ_5:def 3;
hence thesis by A7,RELAT_1:def 7;
end;
theorem Th10:
for R,Q being Relation st R c= Q for p being RedSequence of R
holds p is RedSequence of Q
proof
let R,Q be Relation such that
A1: R c= Q;
let p be RedSequence of R;
thus len p > 0;
let i be Nat;
assume i in dom p & i+1 in dom p;
then [p.i, p.(i+1)] in R by Def2;
hence thesis by A1;
end;
begin :: Reducibility, convertibility, and normal forms
definition
let R be Relation;
let a,b be object;
pred R reduces a,b means
ex p being RedSequence of R st p.1 = a & p. len p = b;
end;
definition
let R be Relation;
let a,b be object;
pred a,b are_convertible_wrt R means
R \/ R~ reduces a,b;
end;
theorem Th11:
for R being Relation, a,b being object holds R reduces a,b iff ex p
being FinSequence st len p > 0 & p.1 = a & p.len p = b &
for i being Nat st i in dom p & i+1 in dom p holds [p.i, p.(i+1)] in R
proof
let R be Relation, a,b be object;
thus R reduces a,b implies ex p being FinSequence st len p > 0 & p.1 = a & p
.len p = b & for i being Nat st i in dom p & i+1 in dom p holds [p.i
, p.(i+1)] in R
proof
given p being RedSequence of R such that
A1: p.1 = a & p.len p = b;
take p;
thus thesis by A1,Def2;
end;
given p being FinSequence such that
A2: len p > 0 and
A3: p.1 = a & p.len p = b and
A4: for i being Nat st i in dom p & i+1 in dom p holds [p.i,
p.(i+1)] in R;
reconsider p as RedSequence of R by A2,A4,Def2;
take p;
thus thesis by A3;
end;
theorem Th12:
for R being Relation, a being object holds R reduces a,a
proof
let R be Relation;
let a be object;
reconsider p = <*a*> as RedSequence of R by Th6;
take p;
len p = 1 by FINSEQ_1:40;
hence thesis by FINSEQ_1:40;
end;
theorem Th13:
for a,b being object st {} reduces a,b holds a = b
proof
let a,b be object;
given p being RedSequence of {} such that
A1: p.1 = a & p.len p = b;
A2: now
assume len p > 1;
then 1 in dom p & 1+1 in dom p by Lm3,Lm4;
hence contradiction by Def2;
end;
len p >= 0+1 by NAT_1:13;
hence thesis by A1,A2,XXREAL_0:1;
end;
theorem Th14:
for R being Relation, a,b being object st R reduces a,b & not a in
field R holds a = b
proof
let R be Relation, a,b be object;
given p being RedSequence of R such that
A1: p.1 = a and
A2: p.len p = b;
assume
A3: not a in field R;
A4: now
assume len p > 1;
then 1 in dom p & 1+1 in dom p by Lm3,Lm4;
then [p.1, p.(1+1)] in R by Def2;
hence contradiction by A1,A3,RELAT_1:15;
end;
len p >= 0+1 by NAT_1:13;
hence thesis by A1,A2,A4,XXREAL_0:1;
end;
theorem Th15:
for R being Relation, a,b being object st [a,b] in R holds R reduces a,b
proof
let R be Relation, a,b be object;
assume [a,b] in R;
then reconsider p = <*a,b*> as RedSequence of R by Th7;
take p;
len p = 2 by FINSEQ_1:44;
hence thesis by FINSEQ_1:44;
end;
theorem Th16:
for R being Relation, a,b,c being object st R reduces a,b & R
reduces b,c holds R reduces a,c
proof
let R be Relation, a,b,c be object;
given p being RedSequence of R such that
A1: p.1 = a and
A2: p.len p = b;
given q being RedSequence of R such that
A3: q.1 = b and
A4: q.len q = c;
reconsider r = p$^q as RedSequence of R by A2,A3,Th8;
take r;
consider p1 being FinSequence, x being object such that
A5: p = p1^<*x*> by FINSEQ_1:46;
0+1 <= len q by NAT_1:13;
then len q in Seg len q by FINSEQ_1:1;
then
A6: len q in dom q by FINSEQ_1:def 3;
A7: r = p1^q by A5,Th2;
p1 = {} or len p1 >= 0+1 by NAT_1:13;
then r = q & p = <*x*> or 1 in Seg len p1 by A5,A7,FINSEQ_1:1,34;
then 1 in dom p1 or len p = 1 & r = q by FINSEQ_1:40,def 3;
then r.1 = p1.1 & p1.1 = a or r.1 = b & b = a by A1,A2,A3,A5,A7,
FINSEQ_1:def 7;
hence r.1 = a;
len r = len p1+len q by A7,FINSEQ_1:22;
hence thesis by A4,A7,A6,FINSEQ_1:def 7;
end;
theorem Th17:
for R being Relation, p being RedSequence of R, i,j being
Nat st i in dom p & j in dom p & i <= j holds R reduces p.i,p.j
proof
let R be Relation, p be RedSequence of R, i,j be Nat;
defpred Q[Nat] means i+$1 in dom p implies R reduces p.i,p.(i+$1);
assume that
A1: i in dom p and
A2: j in dom p and
A3: i <= j;
consider k being Nat such that
A4: j = i+k by A3,NAT_1:10;
now
A5: i >= 1 by A1,Lm1;
let j be Nat such that
A6: i+j in dom p implies R reduces p.i,p.(i+j) and
A7: i+(j+1) in dom p;
A8: i+(j+1) = i+j+1;
then
A9: i+j < len p by A7,Lm2;
then i+j in dom p by A5,Lm3;
then [p.(i+j),p.(i+(j+1))] in R by A7,A8,Def2;
then R reduces p.(i+j), p.(i+(j+1)) by Th15;
hence R reduces p.i,p.(i+(j+1)) by A6,A5,A9,Lm3,Th16;
end;
then
A10: for k being Nat st Q[k] holds Q[k+1];
A11: Q[ 0 ] by Th12;
A12: for j being Nat holds Q[j] from NAT_1:sch 2(A11,A10);
thus thesis by A2,A12,A4;
end;
theorem Th18:
for R being Relation, a,b being object st R reduces a,b & a <> b
holds a in field R & b in field R
proof
let R be Relation, a,b be object;
given p being RedSequence of R such that
A1: a = p.1 and
A2: b = p.len p;
A3: len p >= 0+1 by NAT_1:13;
assume a <> b;
then len p > 1 by A1,A2,A3,XXREAL_0:1;
then
A4: 1+1 in dom p by Lm4;
1 in dom p by A3,Lm3;
then
A5: [a,p.2] in R by A1,A4,Def2;
hence a in field R by RELAT_1:15;
defpred P[Nat] means $1 in dom p implies p.$1 in field R;
A6: len p in dom p by FINSEQ_5:6;
now
let i be Nat such that
i in dom p implies p.i in field R and
A7: i+1 in dom p;
A8: i < len p by A7,Lm2;
per cases;
suppose
i = 0;
hence p.(i+1) in field R by A1,A5,RELAT_1:15;
end;
suppose
i > 0;
then i in dom p by A8,Lm3;
then [p.i,p.(i+1)] in R by A7,Def2;
hence p.(i+1) in field R by RELAT_1:15;
end;
end;
then
A9: for k being Nat st P[k] holds P[k+1];
A10: P[ 0 ] by Lm1;
for i being Nat holds P[i] from NAT_1:sch 2(A10,A9);
hence thesis by A2,A6;
end;
theorem
for R being Relation, a,b being object st R reduces a,b holds a in field
R iff b in field R by Th18;
theorem Th20:
for R being Relation, a,b being object holds R reduces a,b iff a =
b or [a,b] in R[*]
proof
let R be Relation, a,b be object;
hereby
assume
A1: R reduces a,b;
then consider p being RedSequence of R such that
A2: a = p.1 & b = p.len p;
A3: now
let i be Nat;
assume i >= 1 & i < len p;
then i in dom p & i+1 in dom p by Lm3,Lm4;
hence [p.i,p.(i+1)] in R by Def2;
end;
assume a <> b;
then
A4: a in field R & b in field R by A1,Th18;
len p >= 0+1 by NAT_1:13;
hence [a,b] in R[*] by A2,A4,A3,FINSEQ_1:def 16;
end;
assume that
A5: a = b or [a,b] in R[*] and
A6: not R reduces a,b;
consider p being FinSequence such that
A7: len p >= 1 and
A8: p.1 = a & p.(len p) = b and
A9: for i being Nat st i >= 1 & i < len p holds [p.i,p.(i+1)] in R by A5,A6
,Th12,FINSEQ_1:def 16;
p is RedSequence of R
proof
thus len p > 0 by A7;
let i be Nat;
assume that
A10: i in dom p and
A11: i+1 in dom p;
i >= 1 by A10,Lm1;
hence thesis by A9,A11,Lm2;
end;
hence contradiction by A6,A8;
end;
theorem Th21:
for R being Relation, a,b being object
holds R reduces a,b iff R[*] reduces a,b
proof
let R be Relation, a,b be object;
R reduces a,b iff a = b or [a,b] in R[*] by Th20;
hence R reduces a,b implies R[*] reduces a,b by Th12,Th15;
given p being RedSequence of R[*] such that
A1: a = p.1 and
A2: b = p.len p;
defpred P[Nat] means $1 in dom p implies R reduces a,p.$1;
now
let i be Nat such that
A3: i in dom p implies R reduces a,p.i and
A4: i+1 in dom p;
A5: i < len p by A4,Lm2;
per cases;
suppose
i = 0;
hence R reduces a,p.(i+1) by A1,Th12;
end;
suppose
A6: i > 0;
then i in dom p by A5,Lm3;
then [p.i,p.(i+1)] in R[*] by A4,Def2;
then R reduces p.i, p.(i+1) by Th20;
hence R reduces a,p.(i+1) by A3,A5,A6,Lm3,Th16;
end;
end;
then
A7: for k being Nat st P[k] holds P[k+1];
A8: len p in dom p by FINSEQ_5:6;
A9: P[ 0 ] by Lm1;
for i being Nat holds P[i] from NAT_1:sch 2(A9,A7);
hence thesis by A2,A8;
end;
theorem Th22:
for R,Q being Relation st R c= Q for a,b being object st R reduces
a,b holds Q reduces a,b
proof
let R,Q be Relation such that
A1: R c= Q;
let a,b be object;
given p being RedSequence of R such that
A2: p.1 = a & p.len p = b;
p is RedSequence of Q by A1,Th10;
hence ex p being RedSequence of Q st p.1 = a & p.len p = b by A2;
end;
theorem
for R being Relation, X being set, a,b being object holds R reduces a,b
iff R \/ id X reduces a,b
proof
let R be Relation, X be set, a,b be object;
thus R reduces a,b implies R \/ id X reduces a,b by Th22,XBOOLE_1:7;
given p being RedSequence of R \/ id X such that
A1: p.1 = a and
A2: p.len p = b;
defpred P[Nat] means $1 in dom p implies R reduces a,p.$1;
now
let i be Nat;
assume
A3: i in dom p implies R reduces a,p.i;
assume
A4: i+1 in dom p;
per cases;
suppose
A5: i in dom p;
then [p.i, p.(i+1)] in R \/ id X by A4,Def2;
then [p.i, p.(i+1)] in R or [p.i, p.(i+1)] in id X by XBOOLE_0:def 3;
then R reduces p.i, p.(i+1) or p.i = p.(i+1) by Th15,RELAT_1:def 10;
hence R reduces a, p.(i+1) by A3,A5,Th16;
end;
suppose
not i in dom p;
then i < 0+1 or i > len p & i+1 <= len p by A4,Lm1,Lm3;
then i = 0 by NAT_1:13;
hence R reduces a, p.(i+1) by A1,Th12;
end;
end;
then
A6: for k be Nat st P[k] holds P[k+1];
A7: len p in dom p by Lm3;
A8: P[ 0 ] by Lm1;
for i being Nat holds P[i] from NAT_1:sch 2(A8,A6);
hence thesis by A2,A7;
end;
theorem Th24:
for R being Relation, a,b being object st R reduces a,b
holds R~ reduces b,a
proof
let R be Relation, a,b be object;
given p being RedSequence of R such that
A1: p.1 = a and
A2: p.len p = b;
reconsider q = Rev p as RedSequence of R~ by Th9;
take q;
1 in dom q by FINSEQ_5:6;
hence q.1 = p.(len p-1+1) by FINSEQ_5:def 3
.= b by A2;
len q in dom q & len q = len p by FINSEQ_5:6,def 3;
hence q.(len q) = p.(len p-len p+1) by FINSEQ_5:def 3
.= a by A1;
end;
Lm5: for R being Relation, a,b being object
st a,b are_convertible_wrt R holds b,
a are_convertible_wrt R
proof
let R be Relation;
let a,b be object;
assume R \/ R~ reduces a,b;
then (R \/ R~)~ reduces b,a by Th24;
then R~ \/ R~~ reduces b,a by RELAT_1:23;
hence R \/ R~ reduces b,a;
end;
theorem Th25:
for R being Relation, a,b being object st R reduces a,b holds a,b
are_convertible_wrt R & b,a are_convertible_wrt R
proof
let R be Relation, a,b be object;
given p being RedSequence of R such that
A1: p.1 = a & p.len p = b;
p is RedSequence of R \/ R~
proof
thus len p > 0;
let i be Nat;
assume i in dom p & i+1 in dom p;
then [p.i, p.(i+1)] in R by Def2;
hence thesis by XBOOLE_0:def 3;
end;
then R \/ R~ reduces a,b by A1;
hence a,b are_convertible_wrt R;
hence thesis by Lm5;
end;
theorem Th26:
for R being Relation, a being object holds a,a are_convertible_wrt R
by Th12;
theorem Th27:
for a,b being object st a,b are_convertible_wrt {} holds a = b
by Th13;
theorem
for R being Relation, a,b being object st a,b are_convertible_wrt R & not
a in field R holds a = b
proof
let R be Relation;
let a,b be object;
A1: field R = field (R~) & field (R \/ R~) = (field R) \/ field (R~) by
RELAT_1:18,21;
assume R \/ R~ reduces a,b;
hence thesis by A1,Th14;
end;
theorem Th29:
for R being Relation, a,b being object st [a,b] in R holds a,b
are_convertible_wrt R
proof
let R be Relation, a,b be object;
assume [a,b] in R;
then R reduces a,b by Th15;
hence thesis by Th25;
end;
theorem Th30:
for R being Relation, a,b,c being object st a,b are_convertible_wrt
R & b,c are_convertible_wrt R holds a,c are_convertible_wrt R
by Th16;
theorem
for R being Relation, a,b being object st a,b are_convertible_wrt R holds
b,a are_convertible_wrt R by Lm5;
theorem Th32:
for R being Relation, a,b being object st a,b are_convertible_wrt R
& a <> b holds a in field R & b in field R
proof
let R be Relation, a,b be object;
A1: field (R \/ R~) = (field R) \/ field (R~) by RELAT_1:18
.= (field R) \/ field R by RELAT_1:21
.= field R;
assume R \/ R~ reduces a,b;
hence thesis by A1,Th18;
end;
definition
let R be Relation;
let a be object;
pred a is_a_normal_form_wrt R means
not ex b being object st [a,b] in R;
end;
theorem Th33:
for R being Relation, a,b being object st a is_a_normal_form_wrt R
& R reduces a,b holds a = b
proof
let R be Relation;
let a,b be object;
assume
A1: not ex b being object st [a,b] in R;
assume R reduces a,b;
then consider p being FinSequence such that
A2: len p > 0 and
A3: p.1 = a and
A4: p.len p = b and
A5: for i being Nat st i in dom p & i+1 in dom p holds [p.i,
p.(i+1)] in R by Th11;
A6: now
assume len p > 1;
then 1 in dom p & 1+1 in dom p by Lm3,Lm4;
then [a, p.(1+1)] in R by A3,A5;
hence contradiction by A1;
end;
len p >= 0+1 by A2,NAT_1:13;
hence thesis by A3,A4,A6,XXREAL_0:1;
end;
theorem Th34:
for R being Relation, a being object st not a in field R holds a
is_a_normal_form_wrt R
by RELAT_1:15;
definition
let R be Relation;
let a,b be object;
pred b is_a_normal_form_of a,R means
b is_a_normal_form_wrt R & R reduces a,b;
pred a,b are_convergent_wrt R means
: Def7:
ex c being object st R reduces a,c & R reduces b,c;
pred a,b are_divergent_wrt R means
ex c being object st R reduces c,a & R reduces c,b;
pred a,b are_convergent<=1_wrt R means
ex c being object st ([a,c] in R or a = c) & ([b,c] in R or b = c);
pred a,b are_divergent<=1_wrt R means
ex c being object st ([c,a] in R or a = c) & ([c,b] in R or b = c);
end;
theorem Th35:
for R being Relation, a being object st not a in field R holds a
is_a_normal_form_of a,R
by Th12,Th34;
theorem Th36:
for R being Relation, a,b being object st R reduces a,b holds a,b
are_convergent_wrt R & a,b are_divergent_wrt R & b,a are_convergent_wrt R & b,a
are_divergent_wrt R
proof
let R be Relation, a,b be object;
R reduces a,a & R reduces b,b by Th12;
hence thesis;
end;
theorem Th37:
for R being Relation, a,b being object st a,b are_convergent_wrt R
or a,b are_divergent_wrt R holds a,b are_convertible_wrt R
proof
let R be Relation, a,b be object;
assume
A1: a,b are_convergent_wrt R or a,b are_divergent_wrt R;
per cases by A1;
suppose
a,b are_convergent_wrt R;
then consider c being object such that
A2: R reduces a,c & R reduces b,c;
a,c are_convertible_wrt R & c,b are_convertible_wrt R by A2,Th25;
hence thesis by Th30;
end;
suppose
a,b are_divergent_wrt R;
then consider c being object such that
A3: R reduces c,a & R reduces c,b;
c,b are_convertible_wrt R & a,c are_convertible_wrt R by A3,Th25;
hence thesis by Th30;
end;
end;
theorem Th38:
for R being Relation, a being object holds a,a are_convergent_wrt R
& a,a are_divergent_wrt R
by Th12;
theorem Th39:
for a,b being object st a,b are_convergent_wrt {} or a,b
are_divergent_wrt {} holds a = b
proof
let a,b be object;
A1: now
assume a,b are_convergent_wrt {};
then consider c being object such that
A2: {} reduces a,c and
A3: {} reduces b,c;
a = c by A2,Th13;
hence thesis by A3,Th13;
end;
A4: now
assume a,b are_divergent_wrt {};
then consider c being object such that
A5: {} reduces c,a and
A6: {} reduces c,b;
a = c by A5,Th13;
hence thesis by A6,Th13;
end;
assume a,b are_convergent_wrt {} or a,b are_divergent_wrt {};
hence thesis by A1,A4;
end;
theorem
for R being Relation, a,b being object st a,b are_convergent_wrt R holds
b,a are_convergent_wrt R;
theorem
for R being Relation, a,b being object st a,b are_divergent_wrt R holds b
,a are_divergent_wrt R;
theorem Th42:
for R being Relation, a,b,c being object st R reduces a,b & b,c
are_convergent_wrt R or a,b are_convergent_wrt R & R reduces c,b holds a,c
are_convergent_wrt R
proof
let R be Relation, a,b,c be object;
assume
A1: R reduces a,b & b,c are_convergent_wrt R or a,b are_convergent_wrt R
& R reduces c,b;
per cases by A1;
suppose
A2: R reduces a,b & b,c are_convergent_wrt R;
then consider d being object such that
A3: R reduces b,d and
A4: R reduces c,d;
R reduces a,d by A2,A3,Th16;
hence thesis by A4;
end;
suppose
A5: a,b are_convergent_wrt R & R reduces c,b;
then consider d being object such that
A6: R reduces a,d and
A7: R reduces b,d;
R reduces c,d by A5,A7,Th16;
hence thesis by A6;
end;
end;
theorem
for R being Relation, a,b,c being object st R reduces b,a & b,c
are_divergent_wrt R or a,b are_divergent_wrt R & R reduces b,c holds a,c
are_divergent_wrt R
proof
let R be Relation, a,b,c be object;
assume
A1: R reduces b,a & b,c are_divergent_wrt R or a,b are_divergent_wrt R &
R reduces b,c;
per cases by A1;
suppose
A2: R reduces b,a & b,c are_divergent_wrt R;
then consider d being object such that
A3: R reduces d,b and
A4: R reduces d,c;
R reduces d,a by A2,A3,Th16;
hence thesis by A4;
end;
suppose
A5: a,b are_divergent_wrt R & R reduces b,c;
then consider d being object such that
A6: R reduces d,a and
A7: R reduces d,b;
R reduces d,c by A5,A7,Th16;
hence thesis by A6;
end;
end;
theorem Th44:
for R being Relation, a,b being object st a,b are_convergent<=1_wrt
R holds a,b are_convergent_wrt R
proof
let R be Relation, a,b be object;
given c being object such that
A1: ( [a,c] in R or a = c)&( [b,c] in R or b = c);
take c;
thus thesis by A1,Th12,Th15;
end;
theorem Th45:
for R being Relation, a,b being object st a,b are_divergent<=1_wrt
R holds a,b are_divergent_wrt R
proof
let R be Relation, a,b be object;
given c being object such that
A1: ( [c,a] in R or a = c)&( [c,b] in R or b = c);
take c;
thus thesis by A1,Th12,Th15;
end;
definition
let R be Relation;
let a be object;
pred a has_a_normal_form_wrt R means
ex b being object st b is_a_normal_form_of a,R;
end;
theorem Th46:
for R being Relation, a being object st not a in field R holds a
has_a_normal_form_wrt R
by Th35;
definition
let R be Relation, a be object;
assume that
A1: a has_a_normal_form_wrt R and
A2: for b,c being object st b is_a_normal_form_of a,R & c
is_a_normal_form_of a,R holds b = c;
func nf(a,R) -> set means
: Def12:
it is_a_normal_form_of a,R;
existence
proof
consider x such that
A3: x is_a_normal_form_of a,R by A1;
x is set by TARSKI:1;
hence thesis by A3;
end;
uniqueness by A2;
end;
begin :: Terminating reductions
definition
let R be Relation;
attr R is co-well_founded means
R~ is well_founded;
attr R is weakly-normalizing means
: Def14:
for a being object st a in field R holds a has_a_normal_form_wrt R;
attr R is strongly-normalizing means :: terminating, Noetherian
for f being ManySortedSet of NAT ex i
being Nat st not [f.i,f.(i+1)] in R;
end;
definition
let R be Relation;
redefine attr R is co-well_founded means
: Def16:
for Y being set st Y c= field R & Y <> {}
ex a being object st a in Y & for b being object st b in Y & a <> b
holds not [a,b] in R;
compatibility
proof
A1: field R = field (R~) by RELAT_1:21;
hereby
assume R is co-well_founded;
then
A2: R~ is well_founded;
let Y be set;
assume Y c= field R & Y <> {};
then consider a being object such that
A3: a in Y and
A4: (R~)-Seg(a) misses Y by A1,A2;
take a;
thus a in Y by A3;
let b be object;
assume b in Y;
then not b in (R~)-Seg(a) by A4,XBOOLE_0:3;
then a = b or not [b,a] in R~ by WELLORD1:1;
hence a <> b implies not [a,b] in R by RELAT_1:def 7;
end;
hereby
assume
A5: for Y being set st Y c= field R & Y <> {} ex a being object st a
in Y & for b being object st b in Y & a <> b holds not [a,b] in R;
R~ is well_founded
proof
let Y be set;
assume Y c= field (R~) & Y <> {};
then consider a being object such that
A6: a in Y and
A7: for b being object st b in Y & a <> b holds not [a,b] in R by A1,A5;
take a;
thus a in Y by A6;
now
assume (R~)-Seg(a) /\ Y is non empty;
then reconsider A = (R~)-Seg(a) /\ Y as non empty set;
set x = the Element of A;
A8: x in (R~)-Seg(a) by XBOOLE_0:def 4;
then x in Y & x <> a by WELLORD1:1,XBOOLE_0:def 4;
then
A9: not [a,x] in R by A7;
[x,a] in R~ by A8,WELLORD1:1;
hence contradiction by A9,RELAT_1:def 7;
end;
hence thesis by XBOOLE_0:def 7;
end;
hence R is co-well_founded;
end;
end;
end;
scheme
coNoetherianInduction{R() -> Relation, P[object]}:
for a being object st a in field R() holds P[a]
provided
A1: R() is co-well_founded and
A2: for a being object
st for b being object st [a,b] in R() & a <> b holds P[b]
holds P[a]
proof
given a being object such that
A3: a in field R() and
A4: not P[a];
reconsider X = field R() as non empty set by A3;
reconsider a as Element of X by A3;
set Y = {x where x is Element of X: not P[x]};
A5: a in Y by A4;
Y c= field R()
proof
let y be object;
assume y in Y;
then ex x being Element of X st y = x & not P[x];
hence thesis;
end;
then consider a being object such that
A6: a in Y and
A7: for b being object st b in Y & a <> b holds not [a,b] in R()
by A1,A5;
A8: now
let b be object;
assume that
A9: [a,b] in R() & a <> b and
A10: not P[b];
( not b in Y)& b in X by A7,A9,RELAT_1:15;
hence contradiction by A10;
end;
ex x being Element of X st a = x & not P[x] by A6;
hence thesis by A2,A8;
end;
registration
cluster strongly-normalizing -> irreflexive co-well_founded for Relation;
coherence
proof
defpred Q[object] means not contradiction;
let R be Relation such that
A1: for f being ManySortedSet of NAT ex i being Nat st not
[f.i,f.(i+1)] in R;
thus R is irreflexive
proof
given x being object such that
x in field R and
A2: [x,x] in R;
dom (NAT --> x) = NAT by FUNCOP_1:13;
then reconsider f = NAT --> x as ManySortedSet of NAT by PARTFUN1:def 2
,RELAT_1:def 18;
consider i being Nat such that
A3: not [f.i, f.(i+1)] in R by A1;
i in NAT by ORDINAL1:def 12;
then f.i = x by FUNCOP_1:7;
hence contradiction by A2,A3,FUNCOP_1:7;
end;
defpred P[object,object] means [$1,$2] in R;
let Y be set;
assume that
Y c= field R and
A4: Y <> {} and
A5: for a being object st a in Y
ex b being object st b in Y & a <> b & [a,b ] in R;
reconsider Y as non empty set by A4;
now
let x be set;
assume x in Y;
then ex b being object st b in Y & x <> b & [x,b] in R by A5;
hence ex y being object st y in Y & [x,y] in R;
end;
then
A6: for x be object st x in Y & Q[x]
ex y be object st y in Y & P[x,y] & Q[y ];
set y = the Element of Y;
A7: y in Y & Q[y];
consider f being Function such that
A8: dom f = NAT & rng f c= Y & f.0 = y and
A9: for k being Nat holds P[f.k,f.(k+1)] & Q[f.k] from
TREES_2:sch 5(A7,A6);
f is ManySortedSet of NAT by A8,PARTFUN1:def 2,RELAT_1:def 18;
hence thesis by A1,A9;
end;
cluster co-well_founded irreflexive -> strongly-normalizing for Relation;
coherence
proof
let R be Relation such that
A10: for Y being set st Y c= field R & Y <> {}
ex a being object st a in
Y & for b being object st b in Y & a <> b holds not [a,b] in R;
assume
A11: for x being object st x in field R holds not [x,x] in R;
let f be ManySortedSet of NAT;
assume
A12: for i being Nat holds [f.i, f.(i+1)] in R;
A13: rng f c= field R
proof
let y be object;
assume y in rng f;
then consider x being object such that
A14: x in dom f and
A15: y = f.x by FUNCT_1:def 3;
reconsider x as Element of NAT by A14,PARTFUN1:def 2;
[y, f.(x+1)] in R by A12,A15;
hence thesis by RELAT_1:15;
end;
A16: dom f = NAT by PARTFUN1:def 2;
then f.0 in rng f by FUNCT_1:def 3;
then consider a being object such that
A17: a in rng f and
A18: for b being object st b in rng f & a <> b holds not [a,b] in R
by A10,A13;
consider x being object such that
A19: x in dom f and
A20: a = f.x by A17,FUNCT_1:def 3;
reconsider x as Element of NAT by A19,PARTFUN1:def 2;
A21: f.(x+1) in rng f by A16,FUNCT_1:def 3;
A22: [a,f.(x+1)] in R by A12,A20;
then a <> f.(x+1) by A11,A13,A17;
hence contradiction by A18,A22,A21;
end;
end;
registration
cluster empty -> weakly-normalizing strongly-normalizing for Relation;
coherence
by RELAT_1:40;
end;
theorem
for Q being co-well_founded Relation, R being Relation st R c= Q holds
R is co-well_founded
proof
let Q be co-well_founded Relation, R be Relation;
assume
A1: R c= Q;
let Y be set;
assume that
A2: Y c= field R and
A3: Y <> {};
field R c= field Q by A1,RELAT_1:16;
then Y c= field Q by A2;
then consider a being object such that
A4: a in Y and
A5: for b being object st b in Y & a <> b holds not [a,b] in Q by A3,Def16;
take a;
thus a in Y by A4;
let b be object;
assume b in Y & a <> b;
hence thesis by A1,A5;
end;
registration
cluster strongly-normalizing -> weakly-normalizing for Relation;
coherence
proof
let R be Relation such that
A1: R is strongly-normalizing;
let a be object;
assume
A2: a in field R;
then reconsider X = field R as non empty set;
set Y = {x where x is Element of X: R reduces a,x};
A3: Y c= field R
proof
let y be object;
assume y in Y;
then ex x being Element of X st y = x & R reduces a,x;
hence thesis;
end;
R reduces a,a by Th12;
then a in Y by A2;
then consider x being object such that
A4: x in Y and
A5: for b being object st b in Y & x <> b holds not [x,b] in R by A1,A3,Def16;
take x;
A6: ex y being Element of X st x = y & R reduces a,y by A4;
hereby
R is_irreflexive_in field R by A1,RELAT_2:def 10;
then
A7: not [x,x] in R by A3,A4;
given b being object such that
A8: [x,b] in R;
R reduces x,b by A8,Th15;
then
A9: R reduces a,b by A6,Th16;
b in X by A8,RELAT_1:15;
then b in Y by A9;
hence contradiction by A5,A8,A7;
end;
thus thesis by A6;
end;
end;
begin :: Church-Rosser property
definition
let R,Q be Relation;
pred R commutes-weakly_with Q means
for a,b,c being object st [a,b] in R & [a,c
] in Q ex d being object st Q reduces b,d & R reduces c,d;
symmetry
proof
let R,Q be Relation such that
A1: for a,b,c being object st [a,b] in R & [a,c] in Q
ex d being object st Q reduces b,d & R reduces c,d;
let a,b,c be object;
assume [a,b] in Q & [a,c] in R;
then ex d being object st Q reduces c,d & R reduces b,d by A1;
hence thesis;
end;
pred R commutes_with Q means
: Def18:
for a,b,c being object st R reduces a,b &
Q reduces a,c ex d being object st Q reduces b,d & R reduces c,d;
symmetry
proof
let R,Q be Relation such that
A2: for a,b,c being object st R reduces a,b & Q reduces a,c
ex d being object st Q reduces b,d & R reduces c,d;
let a,b,c be object;
assume Q reduces a,b & R reduces a,c;
then ex d being object st Q reduces c,d & R reduces b,d by A2;
hence thesis;
end;
end;
theorem
for R,Q being Relation st R commutes_with Q holds R commutes-weakly_with Q
proof
let R,Q be Relation;
assume
A1: for a,b,c being object st R reduces a,b & Q reduces a,c
ex d being object st Q reduces b,d & R reduces c,d;
let a,b,c be object;
assume [a,b] in R & [a,c] in Q;
then R reduces a,b & Q reduces a,c by Th15;
hence thesis by A1;
end;
definition
let R be Relation;
attr R is with_UN_property means
: Def19:
for a,b being object st a
is_a_normal_form_wrt R & b is_a_normal_form_wrt R & a,b are_convertible_wrt R
holds a = b;
attr R is with_NF_property means
for a,b being object st a is_a_normal_form_wrt
R & a,b are_convertible_wrt R holds R reduces b,a;
attr R is subcommutative means
for a,b,c being object st [a,b] in R &
[a,c] in R holds b,c are_convergent<=1_wrt R;
attr R is confluent means
: Def22:
for a,b being object st a,b are_divergent_wrt R
holds a,b are_convergent_wrt R;
attr R is with_Church-Rosser_property means
: Def23:
for a,b being object st a,b are_convertible_wrt R
holds a,b are_convergent_wrt R;
attr R is locally-confluent means
for a,b,c being object st [a,b] in R
& [a,c] in R holds b,c are_convergent_wrt R;
end;
theorem Th49:
for R being Relation st R is subcommutative for a,b,c being object
st R reduces a,b & [a,c] in R holds b,c are_convergent_wrt R
proof
let R be Relation;
assume
A1: R is subcommutative;
let a,b,c be object;
given p being RedSequence of R such that
A2: p.1 = a and
A3: p.len p = b;
defpred P[Nat] means $1 in dom p implies ex d being object st ([p.$1
,d] in R or p.$1 = d) & R reduces c,d;
assume
A4: [a,c] in R;
now
let i be Nat such that
A5: i in dom p implies P[i] and
A6: i+1 in dom p;
per cases;
suppose
A7: i = 0;
R reduces c,c by Th12;
hence P[i+1] by A2,A4,A7;
end;
suppose
A8: i > 0;
A9: i < len p by A6,Lm2;
then consider d being object such that
A10: [p.i,d] in R or p.i = d and
A11: R reduces c,d by A5,A8,Lm3;
i in dom p by A8,A9,Lm3;
then
A12: [p.i,p.(i+1)] in R by A6,Def2;
A13: now
assume [p.i,d] in R;
then p.(i+1),d are_convergent<=1_wrt R by A1,A12;
then consider e being object such that
A14: [p.(i+1),e] in R or p.(i+1) = e and
A15: [d,e] in R or d = e;
take e;
thus [p.(i+1),e] in R or p.(i+1) = e by A14;
R reduces d,e by A15,Th12,Th15;
hence R reduces c,e by A11,Th16;
end;
now
assume p.i = d;
then R reduces d, p.(i+1) by A12,Th15;
hence R reduces c, p.(i+1) by A11,Th16;
end;
hence P[i+1] by A10,A13;
end;
end;
then
A16: for k be Nat st P[k] holds P[k+1];
A17: len p in dom p by FINSEQ_5:6;
A18: P[ 0 ] by Lm1;
for i being Nat holds P[i] from NAT_1:sch 2(A18,A16);
then consider d being object such that
A19: ( [b,d] in R or b = d)& R reduces c,d by A3,A17;
take d;
thus thesis by A19,Th12,Th15;
end;
theorem
for R being Relation holds R is confluent iff R commutes_with R
proof
let R be Relation;
hereby
assume
A1: R is confluent;
thus R commutes_with R
proof
let a,b,c be object;
assume R reduces a,b & R reduces a,c;
then b,c are_divergent_wrt R;
then b,c are_convergent_wrt R by A1;
hence thesis;
end;
end;
assume
A2: for a,b,c being object st R reduces a,b & R reduces a,c
ex d being object st R reduces b,d & R reduces c,d;
let a,b be object;
assume ex c being object st R reduces c,a & R reduces c,b;
hence ex d being object st R reduces a,d & R reduces b,d by A2;
end;
theorem Th51:
for R being Relation holds R is confluent iff for a,b,c being
object st R reduces a,b & [a,c] in R holds b,c are_convergent_wrt R
proof
let R be Relation;
hereby
assume
A1: R is confluent;
let a,b,c be object;
assume that
A2: R reduces a,b and
A3: [a,c] in R;
R reduces a,c by A3,Th15;
then b,c are_divergent_wrt R by A2;
hence b,c are_convergent_wrt R by A1;
end;
assume
A4: for a,b,c being object st R reduces a,b & [a,c] in R holds b,c
are_convergent_wrt R;
let b,c be object;
given a being object such that
A5: R reduces a,b and
A6: R reduces a,c;
consider p being RedSequence of R such that
A7: p.1 = a and
A8: p.len p = b by A5;
consider q being RedSequence of R such that
A9: q.1 = a and
A10: q.len q = c by A6;
defpred P[Nat,Nat] means p.$1, q.$2 are_convergent_wrt
R;
defpred Q[Nat] means $1 in dom p implies
for j being Nat st j in dom q holds P[$1,j];
A11: for i being Nat st Q[i] holds Q[i+1]
proof
let i be Nat such that
i in dom p implies for j being Nat st j in dom q holds P[i,
j] and
A12: i+1 in dom p;
defpred R[Nat] means $1 in dom q implies P[i+1,$1];
A13: for j being Nat st R[j] holds R[j+1]
proof
1 in dom p by FINSEQ_5:6;
then
A14: R reduces a,p.(i+1) by A7,A12,Th17,NAT_1:11;
let j be Nat such that
A15: j in dom q implies P[i+1,j] and
A16: j+1 in dom q;
per cases;
suppose
j = 0;
hence thesis by A9,A14,Th36;
end;
suppose
A17: j > 0;
A18: j < len q by A16,Lm2;
then consider d being object such that
A19: R reduces p.(i+1),d and
A20: R reduces q.j,d by A15,A17,Def7,Lm3;
j in dom q by A17,A18,Lm3;
then [q.j, q.(j+1)] in R by A16,Def2;
then d,q.(j+1) are_convergent_wrt R by A4,A20;
hence thesis by A19,Th42;
end;
end;
A21: R[ 0 ] by Lm1;
thus for j being Nat holds R[j] from NAT_1:sch 2(A21,A13 );
end;
A22: len p in dom p & len q in dom q by FINSEQ_5:6;
A23: Q[ 0 ] by Lm1;
for i being Nat holds Q[i] from NAT_1:sch 2(A23,A11);
hence thesis by A8,A10,A22;
end;
theorem
for R being Relation holds R is locally-confluent iff R
commutes-weakly_with R
proof
let R be Relation;
hereby
assume
A1: R is locally-confluent;
thus R commutes-weakly_with R
proof
let a,b,c be object;
assume [a,b] in R & [a,c] in R;
then b,c are_convergent_wrt R by A1;
hence thesis;
end;
end;
assume
A2: for a,b,c being object st [a,b] in R & [a,c] in R
ex d being object st R reduces b,d & R reduces c,d;
let a,b,c be object;
assume [a,b] in R & [a,c] in R;
hence ex d being object st R reduces b,d & R reduces c,d by A2;
end;
registration
cluster with_Church-Rosser_property -> confluent for Relation;
coherence
proof
let R be Relation;
assume
A1: for a,b being object st a,b are_convertible_wrt R holds a,b
are_convergent_wrt R;
let a,b be object;
assume a,b are_divergent_wrt R;
then a,b are_convertible_wrt R by Th37;
hence thesis by A1;
end;
cluster confluent -> locally-confluent with_Church-Rosser_property for
Relation;
coherence
proof
let R be Relation;
assume
A2: for a,b being object st a,b are_divergent_wrt R holds a,b
are_convergent_wrt R;
hereby
let a,b,c be object;
assume [a,b] in R & [a,c] in R;
then R reduces a,b & R reduces a,c by Th15;
then b,c are_divergent_wrt R;
hence b,c are_convergent_wrt R by A2;
end;
let a,b be object;
given p being RedSequence of R \/ R~ such that
A3: p.1 = a and
A4: p.len p = b;
defpred P[Nat] means $1 in dom p implies a,p.$1
are_convergent_wrt R;
now
let i be Nat;
assume that
A5: i in dom p implies a,p.i are_convergent_wrt R and
A6: i+1 in dom p;
per cases;
suppose
A7: i in dom p;
then consider c being object such that
A8: R reduces a,c and
A9: R reduces p.i,c by A5;
[p.i, p.(i+1)] in R \/ R~ by A6,A7,Def2;
then [p.i, p.(i+1)] in R or [p.i, p.(i+1)] in R~ by XBOOLE_0:def 3;
then [p.i, p.(i+1)] in R or [p.(i+1), p.i] in R by RELAT_1:def 7;
then R reduces p.i, p.(i+1) or R reduces p.(i+1), p.i by Th15;
then c,p.(i+1) are_divergent_wrt R or R reduces p.(i+1),c by A9,Th16;
then c,p.(i+1) are_convergent_wrt R or a,p.(i+1) are_convergent_wrt R
by A2,A8;
hence a, p.(i+1) are_convergent_wrt R by A8,Th42;
end;
suppose
not i in dom p;
then i < 0+1 or i > len p & i+1 <= len p by A6,Lm1,Lm3;
then i = 0 by NAT_1:13;
hence a, p.(i+1) are_convergent_wrt R by A3,Th38;
end;
end;
then
A10: for k being Nat st P[k] holds P[k+1];
A11: len p in dom p by FINSEQ_5:6;
A12: P[ 0 ] by Lm1;
for i being Nat holds P[i] from NAT_1:sch 2(A12,A10);
hence thesis by A4,A11;
end;
cluster subcommutative -> confluent for Relation;
coherence
proof
let R be Relation;
assume R is subcommutative;
then for a,b,c being object st R reduces a,b & [a,c] in R holds b,c
are_convergent_wrt R by Th49;
hence thesis by Th51;
end;
cluster with_Church-Rosser_property -> with_NF_property for Relation;
coherence
proof
let R be Relation;
assume
A13: R is with_Church-Rosser_property;
let b,a be object;
assume
A14: b is_a_normal_form_wrt R;
assume b,a are_convertible_wrt R;
then b,a are_convergent_wrt R by A13;
then ex c being object st R reduces b,c & R reduces a,c;
hence thesis by A14,Th33;
end;
cluster with_NF_property -> with_UN_property for Relation;
coherence
by Th33;
cluster with_UN_property weakly-normalizing -> with_Church-Rosser_property
for Relation;
coherence
proof
let R be Relation such that
A15: for a,b being object st a is_a_normal_form_wrt R & b
is_a_normal_form_wrt R & a,b are_convertible_wrt R holds a = b and
A16: for a being object st a in field R holds a has_a_normal_form_wrt R;
let a,b be object;
assume
A17: R \/ R~ reduces a,b;
A18: field (R \/ R~) = (field R) \/ field (R~) by RELAT_1:18
.= (field R) \/ field R by RELAT_1:21
.= field R;
per cases;
suppose
a = b;
hence thesis by Th38;
end;
suppose
A19: a <> b;
then b in field R by A17,A18,Th18;
then b has_a_normal_form_wrt R by A16;
then consider b9 being object such that
A20: b9 is_a_normal_form_of b,R;
a in field R by A17,A18,A19,Th18;
then a has_a_normal_form_wrt R by A16;
then consider a9 being object such that
A21: a9 is_a_normal_form_of a,R;
A22: a9 is_a_normal_form_wrt R by A21;
A23: a,b are_convertible_wrt R by A17;
A24: R reduces a,a9 by A21;
then a9,a are_convertible_wrt R by Th25;
then
A25: a9,b are_convertible_wrt R by A23,Th30;
A26: b9 is_a_normal_form_wrt R by A20;
A27: R reduces b,b9 by A20;
then b,b9 are_convertible_wrt R by Th25;
then a9 = b9 by A15,A22,A26,A25,Th30;
hence thesis by A24,A27;
end;
end;
end;
registration
cluster empty -> subcommutative for Relation;
coherence;
end;
theorem Th53:
for R being with_UN_property Relation for a,b,c being object st b
is_a_normal_form_of a,R & c is_a_normal_form_of a,R holds b = c
proof
let R be with_UN_property Relation;
let a,b,c be object such that
A1: b is_a_normal_form_wrt R and
A2: R reduces a,b and
A3: c is_a_normal_form_wrt R and
A4: R reduces a,c;
b,c are_divergent_wrt R by A2,A4;
then b,c are_convertible_wrt R by Th37;
hence thesis by A1,A3,Def19;
end;
theorem Th54:
for R being with_UN_property weakly-normalizing Relation for a
being object holds nf(a,R) is_a_normal_form_of a,R
proof
let R be with_UN_property weakly-normalizing Relation;
let a be object;
a in field R or not a in field R;
then
A1: a has_a_normal_form_wrt R by Def14,Th46;
for b,c being object st b is_a_normal_form_of a,R & c is_a_normal_form_of a
,R holds b = c by Th53;
hence thesis by A1,Def12;
end;
theorem Th55:
for R being with_UN_property weakly-normalizing Relation for a,b
being object st a,b are_convertible_wrt R holds nf(a,R) = nf(b,R)
proof
let R be with_UN_property weakly-normalizing Relation;
let a,b be object;
A1: nf(b,R) is_a_normal_form_of b,R by Th54;
then
A2: nf(b,R) is_a_normal_form_wrt R;
R reduces b,nf(b,R) by A1;
then
A3: b,nf(b,R) are_convertible_wrt R by Th25;
A4: nf(a,R) is_a_normal_form_of a,R by Th54;
then R reduces a,nf(a,R);
then
A5: nf(a,R),a are_convertible_wrt R by Th25;
assume a,b are_convertible_wrt R;
then nf(a,R),b are_convertible_wrt R by A5,Th30;
then
A6: nf(a,R),nf(b,R) are_convertible_wrt R by A3,Th30;
nf(a,R) is_a_normal_form_wrt R by A4;
hence thesis by A2,A6,Def19;
end;
registration
cluster strongly-normalizing locally-confluent -> confluent for Relation;
coherence
proof
let R be Relation;
assume
A1: R is strongly-normalizing;
defpred P[object] means
for b,c being object st R reduces $1,b & R reduces $1,c
holds b,c are_convergent_wrt R;
assume
A2: for a,b,c being object st [a,b] in R & [a,c] in R holds b,c
are_convergent_wrt R;
A3: for a being object st
for b being object st [a,b] in R & a <> b holds P[b] holds P[a]
proof
let a be object;
assume
A4: for b being object st [a,b] in R & a <> b holds P[b];
let b,c be object;
assume that
A5: R reduces a,b and
A6: R reduces a,c;
consider p being RedSequence of R such that
A7: a = p.1 and
A8: b = p.len p by A5;
A9: len p >= 0+1 by NAT_1:13;
consider q being RedSequence of R such that
A10: a = q.1 and
A11: c = q.len q by A6;
A12: len q >= 0+1 by NAT_1:13;
per cases;
suppose
len p = 1;
hence thesis by A6,A7,A8,Th36;
end;
suppose
len q = 1;
hence thesis by A5,A10,A11,Th36;
end;
suppose
A13: len p <> 1 & len q <> 1;
then len q > 1 by A12,XXREAL_0:1;
then
A14: 1+1 <= len q by NAT_1:13;
then
A15: 1+1 in dom q by Lm3;
len q in dom q by FINSEQ_5:6;
then
A16: R reduces q.2,c by A11,A14,A15,Th17;
len p > 1 by A9,A13,XXREAL_0:1;
then
A17: 1+1 <= len p by NAT_1:13;
then
A18: 1+1 in dom p by Lm3;
len p in dom p by FINSEQ_5:6;
then
A19: R reduces p.2,b by A8,A17,A18,Th17;
1 in dom p by A9,Lm3;
then
A20: [a,p.2] in R by A7,A18,Def2;
then
A21: a in field R by RELAT_1:15;
1 in dom q by A12,Lm3;
then
A22: [a,q.2] in R by A10,A15,Def2;
then p.2,q.2 are_convergent_wrt R by A2,A20;
then consider d being object such that
A23: R reduces p.2,d and
A24: R reduces q.2,d;
A25: R is_irreflexive_in field R by A1,RELAT_2:def 10;
then
A26: a <> q.2 by A22,A21;
a <> p.2 by A20,A21,A25;
then b,d are_convergent_wrt R by A4,A20,A23,A19;
then consider e being object such that
A27: R reduces b,e and
A28: R reduces d,e;
R reduces q.2,e by A24,A28,Th16;
then e,c are_convergent_wrt R by A4,A22,A26,A16;
hence thesis by A27,Th42;
end;
end;
A29: R is co-well_founded by A1;
A30: for a being object st a in field R holds P[a] from coNoetherianInduction
(A29,A3);
given a0,b0 being object such that
A31: a0,b0 are_divergent_wrt R and
A32: not a0,b0 are_convergent_wrt R;
consider c0 being object such that
A33: R reduces c0,a0 & R reduces c0,b0 by A31;
a0 <> c0 or b0 <> c0 by A32,Th38;
then c0 in field R by A33,Th18;
hence thesis by A32,A33,A30;
end;
end;
definition
let R be Relation;
attr R is complete means
R is confluent strongly-normalizing;
end;
registration
cluster complete -> confluent strongly-normalizing for Relation;
coherence;
cluster confluent strongly-normalizing -> complete for Relation;
coherence;
end;
registration
cluster complete for non empty Relation;
existence
proof
reconsider R = {[0,1]} as non empty Relation;
take R;
A1: field R = {0,1} by RELAT_1:17;
thus R is confluent
proof
let a,b be object;
given c being object such that
A2: R reduces c,a and
A3: R reduces c,b;
per cases;
suppose
a = b;
hence thesis by Th38;
end;
suppose
a <> b;
then a <> c or b <> c;
then
A4: c in field R by A2,A3,Th18;
then a in {0,1} by A1,A2,Th18;
then
A5: a = 0 or a = 1 by TARSKI:def 2;
b in {0,1} by A1,A3,A4,Th18;
then
A6: b = 0 or b = 1 by TARSKI:def 2;
[0,1] in R by TARSKI:def 1;
then
A7: R reduces 0,1 by Th15;
R reduces 1,1 by Th12;
hence thesis by A5,A6,A7;
end;
end;
A8: R is co-well_founded
proof
let Y be set;
assume that
A9: Y c= field R and
A10: Y <> {};
reconsider Y9 = Y as non empty set by A10;
set y = the Element of Y9;
per cases;
suppose
A11: 1 in Y;
take 1;
thus 1 in Y by A11;
let b be object;
assume that
b in Y and
1 <> b;
[0,1] <> [1,b] by XTUPLE_0:1;
hence thesis by TARSKI:def 1;
end;
suppose
A12: not 1 in Y & y in Y;
take 0;
thus 0 in Y by A1,A9,A12,TARSKI:def 2;
let b be object;
assume b in Y;
hence thesis by A1,A9,A12,TARSKI:def 2;
end;
end;
R is irreflexive
proof
let x be object;
assume that
x in field R and
A13: [x,x] in R;
A14: [x,x] = [0,1] by A13,TARSKI:def 1;
then x = 0 by XTUPLE_0:1;
hence contradiction by A14,XTUPLE_0:1;
end;
hence thesis by A8;
end;
end;
theorem
for R,Q being with_Church-Rosser_property Relation st R commutes_with
Q holds R \/ Q is with_Church-Rosser_property
proof
let R,Q be with_Church-Rosser_property Relation;
assume
A1: R commutes_with Q;
R \/ Q is confluent
proof
let a,b be object;
given c being object such that
A2: R \/ Q reduces c,a and
A3: R \/ Q reduces c,b;
consider p being RedSequence of R \/ Q such that
A4: c = p.1 and
A5: a = p.len p by A2;
defpred Z[Nat] means $1 in dom p implies p.$1,b
are_convergent_wrt R \/ Q;
now
let i be Nat such that
A6: i in dom p implies p.i,b are_convergent_wrt R \/ Q and
A7: i+1 in dom p;
per cases;
suppose
i = 0;
hence p.(i+1),b are_convergent_wrt R \/ Q by A3,A4,Th36;
end;
suppose
A8: i > 0;
A9: i < len p by A7,Lm2;
then consider d being object such that
A10: R \/ Q reduces p.i,d and
A11: R \/ Q reduces b,d by A6,A8,Lm3;
consider q being RedSequence of R \/ Q such that
A12: p.i = q.1 and
A13: d = q.len q by A10;
defpred P[Nat] means $1 in dom q implies
ex e being object st
R \/ Q reduces p.(i+1),e & (R reduces q.$1,e or Q reduces q.$1,e);
i in dom p by A8,A9,Lm3;
then [p.i,p.(i+1)] in R \/ Q by A7,Def2;
then
A14: [p.i,p.(i+1)] in R or [p.i,p.(i+1)] in Q by XBOOLE_0:def 3;
now
let j be Nat such that
A15: j in dom q implies ex e being object st R \/ Q reduces p.(i+1)
,e & (R reduces q.j,e or Q reduces q.j,e) and
A16: j+1 in dom q;
A17: j < len q by A16,Lm2;
per cases;
suppose
A18: j = 0;
A19: R \/ Q reduces p.(i+1),p.(i+1) by Th12;
R reduces q.(j+1),p.(i+1) or Q reduces q.(j+1),p.(i+1) by A12,A14
,A18,Th15;
hence
ex e being object st R \/ Q reduces p.(i+1),e & (R reduces q.(j+
1),e or Q reduces q.(j+1),e) by A19;
end;
suppose
A20: j > 0;
then consider e being object such that
A21: R \/ Q reduces p.(i+1),e and
A22: R reduces q.j,e or Q reduces q.j,e by A15,A17,Lm3;
A23: now
assume R reduces q.j,q.(j+1) & Q reduces q.j,e;
then consider x being object such that
A24: Q reduces q.(j+1),x and
A25: R reduces e,x by A1;
take x;
R \/ Q reduces e,x by A25,Th22,XBOOLE_1:7;
hence R \/ Q reduces p.(i+1),x & (R reduces q.(j+1),x or Q
reduces q.(j+1),x) by A21,A24,Th16;
end;
A26: now
assume Q reduces q.j,q.(j+1) & Q reduces q.j,e;
then e,q.(j+1) are_divergent_wrt Q;
then e,q.(j+1) are_convergent_wrt Q by Def22;
then consider x being object such that
A27: Q reduces e,x and
A28: Q reduces q.(j+1),x;
take x;
R \/ Q reduces e,x by A27,Th22,XBOOLE_1:7;
hence R \/ Q reduces p.(i+1),x & (R reduces q.(j+1),x or Q
reduces q.(j+1),x) by A21,A28,Th16;
end;
A29: now
assume R reduces q.j,q.(j+1) & R reduces q.j,e;
then e,q.(j+1) are_divergent_wrt R;
then e,q.(j+1) are_convergent_wrt R by Def22;
then consider x being object such that
A30: R reduces e,x and
A31: R reduces q.(j+1),x;
take x;
R \/ Q reduces e,x by A30,Th22,XBOOLE_1:7;
hence R \/ Q reduces p.(i+1),x & (R reduces q.(j+1),x or Q
reduces q.(j+1),x) by A21,A31,Th16;
end;
A32: now
assume Q reduces q.j,q.(j+1) & R reduces q.j,e;
then consider x being object such that
A33: R reduces q.(j+1),x and
A34: Q reduces e,x by A1,Def18;
take x;
R \/ Q reduces e,x by A34,Th22,XBOOLE_1:7;
hence R \/ Q reduces p.(i+1),x & (R reduces q.(j+1),x or Q
reduces q.(j+1),x) by A21,A33,Th16;
end;
j in dom q by A17,A20,Lm3;
then [q.j,q.(j+1)] in R \/ Q by A16,Def2;
then [q.j,q.(j+1)] in R or [q.j,q.(j+1)] in Q by XBOOLE_0:def 3;
hence
ex e being object st R \/ Q reduces p.(i+1),e & (R reduces q.(j+
1),e or Q reduces q.(j+1),e) by A22,A29,A26,A23,A32,Th15;
end;
end;
then
A35: for k being Nat st P[k] holds P[k+1];
A36: P[ 0 ] by Lm1;
A37: for j being Nat holds P[j] from NAT_1:sch 2(A36,A35);
thus p.(i+1),b are_convergent_wrt R \/ Q
proof
len q in dom q by FINSEQ_5:6;
then consider e being object such that
A38: R \/ Q reduces p.(i+1),e and
A39: R reduces d,e or Q reduces d,e by A13,A37;
take e;
R \/ Q reduces d,e by A39,Th22,XBOOLE_1:7;
hence thesis by A11,A38,Th16;
end;
end;
end;
then
A40: for k being Nat st Z[k] holds Z[k+1];
A41: len p in dom p by FINSEQ_5:6;
A42: Z[ 0 ] by Lm1;
for i being Nat holds Z[i] from NAT_1:sch 2(A42,A40);
hence thesis by A5,A41;
end;
hence thesis;
end;
theorem
for R being Relation holds R is confluent iff R[*] is locally-confluent
proof
let R be Relation;
hereby
assume
A1: R is confluent;
thus R[*] is locally-confluent
proof
let a,b,c be object;
assume [a,b] in R[*] & [a,c] in R[*];
then R reduces a,b & R reduces a,c by Th20;
then b,c are_divergent_wrt R;
then b,c are_convergent_wrt R by A1;
then consider d being object such that
A2: R reduces b,d & R reduces c,d;
take d;
thus thesis by A2,Th21;
end;
end;
assume
A3: for a,b,c being object st [a,b] in R[*] & [a,c] in R[*] holds b,c
are_convergent_wrt R[*];
let a,b be object;
given c being object such that
A4: R reduces c,a and
A5: R reduces c,b;
A6: [c,b] in R[*] or c = b by A5,Th20;
[c,a] in R[*] or c = a by A4,Th20;
then a,b are_convergent_wrt R[*] or R[*] reduces a,b or R[*] reduces b,a by
A3,A6,Th15,Th38;
then a,b are_convergent_wrt R[*] by Th36;
then consider d being object such that
A7: R[*] reduces a,d & R[*] reduces b,d;
take d;
thus thesis by A7,Th21;
end;
theorem
for R being Relation holds R is confluent iff R[*] is subcommutative
proof
let R be Relation;
hereby
assume
A1: R is confluent;
thus R[*] is subcommutative
proof
let a,b,c be object;
assume [a,b] in R[*] & [a,c] in R[*];
then R reduces a,b & R reduces a,c by Th20;
then b,c are_divergent_wrt R;
then b,c are_convergent_wrt R by A1;
then consider d being object such that
A2: R reduces b,d & R reduces c,d;
take d;
thus thesis by A2,Th20;
end;
end;
assume
A3: for a,b,c being object st [a,b] in R[*] & [a,c] in R[*] holds b,c
are_convergent<=1_wrt R[*];
let a,b be object;
given c being object such that
A4: R reduces c,a and
A5: R reduces c,b;
A6: [c,b] in R[*] or c = b by A5,Th20;
[c,a] in R[*] or c = a by A4,Th20;
then a,b are_convergent<=1_wrt R[*] by A3,A6;
then a,b are_convergent_wrt R[*] by Th44;
then consider d being object such that
A7: R[*] reduces a,d & R[*] reduces b,d;
take d;
thus thesis by A7,Th21;
end;
begin :: Completion method
definition
let R,Q be Relation;
pred R,Q are_equivalent means
for a,b being object holds a,b
are_convertible_wrt R iff a,b are_convertible_wrt Q;
symmetry;
end;
definition
let R be Relation;
let a,b be object;
pred a,b are_critical_wrt R means
a,b are_divergent<=1_wrt R & not a,b are_convergent_wrt R;
end;
theorem Th59:
for R being Relation, a,b being object st a,b are_critical_wrt R
holds a,b are_convertible_wrt R
by Th37,Th45;
theorem
for R being Relation st not ex a,b being object st a,b are_critical_wrt R
holds R is locally-confluent
proof
let R be Relation such that
A1: not ex a,b being object st a,b are_critical_wrt R;
let a,b,c be object;
assume [a,b] in R & [a,c] in R;
then
A2: b,c are_divergent<=1_wrt R;
not b,c are_critical_wrt R by A1;
hence thesis by A2;
end;
theorem
for R,Q being Relation st for a,b being object st [a,b] in Q holds a,b
are_critical_wrt R holds R, R \/ Q are_equivalent
proof
let R,Q be Relation;
assume
A1: for a,b being object st [a,b] in Q holds a,b are_critical_wrt R;
let a,b be object;
A2: R c= R \/ Q by XBOOLE_1:7;
A3: R~ c= (R \/ Q)~
proof
let x,y be object;
assume [x,y] in R~;
then [y,x] in R by RELAT_1:def 7;
hence thesis by A2,RELAT_1:def 7;
end;
thus a,b are_convertible_wrt R implies
a,b are_convertible_wrt R \/ Q by A2,A3,Th22,XBOOLE_1:13;
given p being RedSequence of (R \/ Q) \/ (R \/ Q)~ such that
A4: a = p.1 and
A5: b = p.len p;
defpred Z[Nat] means $1 in dom p implies a,p.$1
are_convertible_wrt R;
now
let i be Nat such that
A6: i in dom p implies a,p.i are_convertible_wrt R and
A7: i+1 in dom p;
A8: i < len p by A7,Lm2;
per cases;
suppose
i = 0;
hence a,p.(i+1) are_convertible_wrt R by A4,Th26;
end;
suppose
A9: i > 0;
then i in dom p by A8,Lm3;
then [p.i,p.(i+1)] in (R \/ Q) \/ (R \/ Q)~ by A7,Def2;
then [p.i,p.(i+1)] in R \/ Q or [p.i,p.(i+1)] in (R \/ Q)~ by
XBOOLE_0:def 3;
then [p.i,p.(i+1)] in R \/ Q or [p.(i+1),p.i] in R \/ Q by RELAT_1:def 7;
then
[p.i,p.(i+1)] in R or [p.i,p.(i+1)] in Q or [p.(i+1),p.i] in R or [
p.(i+1),p.i] in Q by XBOOLE_0:def 3;
then p.i,p.(i+1) are_convertible_wrt R or p.(i+1),p.i
are_convertible_wrt R by A1,Th29,Th59;
then p.i,p.(i+1) are_convertible_wrt R by Lm5;
hence a,p.(i+1) are_convertible_wrt R by A6,A8,A9,Lm3,Th30;
end;
end;
then
A10: for k being Nat st Z[k] holds Z[k+1];
A11: len p in dom p by FINSEQ_5:6;
A12: Z[ 0 ] by Lm1;
for i being Nat holds Z[i] from NAT_1:sch 2(A12,A10);
hence thesis by A5,A11;
end;
theorem Th62:
for R being Relation ex Q being complete Relation st field Q c=
field R & for a,b being object holds a,b are_convertible_wrt R iff a,b
are_convergent_wrt Q
proof
let R be Relation;
per cases;
suppose
A1: R = {};
take E = {};
thus field E c= field R;
let a,b be object;
a,b are_convertible_wrt R iff a = b by A1,Th26,Th27;
hence thesis by Th38,Th39;
end;
suppose
R <> {};
then reconsider R9 = R as non empty Relation;
set xx = the Element of R9;
consider x1,x2 being object such that
A2: xx = [x1,x2] by RELAT_1:def 1;
defpred P[object,object] means $1,$2 are_convertible_wrt R;
A3: for x,y being object st P[x,y] holds P[y,x] by Lm5;
A4: for x,y,z being object st P[x,y] & P[y,z] holds P[x,z] by Th30;
A5: for x being object st x in field R holds P[x,x] by Th26;
consider Q being Equivalence_Relation of field R such that
A6: for x,y being object
holds [x,y] in Q iff x in field R & y in field R & P[x,y]
from EQREL_1:sch 1(A5,A3,A4);
A7: ( for X being set st X in Class Q holds X <> {})& for X,Y being set
st X in Class Q & Y in Class Q & X <> Y holds X misses Y by EQREL_1:def 4;
x1 in field R by A2,RELAT_1:15;
then Class(Q,x1) in Class Q by EQREL_1:def 3;
then consider X being set such that
A8: for A being set st A in Class Q ex x st X /\ A = {x} by A7,WELLORD2:18;
defpred Z[object,object] means
$1 <> $2 & $1,$2 are_convertible_wrt R & $2 in X;
consider P being Relation such that
A9: for x,y being object
holds [x,y] in P iff x in field R & y in field R & Z[x,y]
from RELAT_1:sch 1;
A10: P is locally-confluent
proof
let a,b,c be object;
assume that
A11: [a,b] in P and
A12: [a,c] in P;
A13: a in field R by A9,A11;
then Class(Q,a) in Class Q by EQREL_1:def 3;
then consider x such that
A14: X /\ Class(Q,a) = {x} by A8;
c in field R & a,c are_convertible_wrt R by A9,A12;
then [a,c] in Q by A6,A13;
then [c,a] in Q by EQREL_1:6;
then
A15: c in Class(Q,a) by EQREL_1:19;
c in X by A9,A12;
then c in {x} by A15,A14,XBOOLE_0:def 4;
then
A16: c = x by TARSKI:def 1;
b in field R & a,b are_convertible_wrt R by A9,A11;
then [a,b] in Q by A6,A13;
then [b,a] in Q by EQREL_1:6;
then
A17: b in Class(Q,a) by EQREL_1:19;
take b;
b in X by A9,A11;
then b in {x} by A17,A14,XBOOLE_0:def 4;
then b = x by TARSKI:def 1;
hence thesis by A16,Th12;
end;
A18: for x,y st P reduces x,y holds x,y are_convertible_wrt R
proof
let x,y;
given p being RedSequence of P such that
A19: x = p.1 and
A20: y = p.len p;
defpred Z[Nat] means $1 in dom p implies x,p.$1
are_convertible_wrt R;
now
let i be Nat such that
A21: i in dom p implies x,p.i are_convertible_wrt R and
A22: i+1 in dom p;
A23: i < len p by A22,Lm2;
per cases;
suppose
i = 0;
hence x,p.(i+1) are_convertible_wrt R by A19,Th26;
end;
suppose
A24: i > 0;
then i in dom p by A23,Lm3;
then [p.i,p.(i+1)] in P by A22,Def2;
then p.i,p.(i+1) are_convertible_wrt R by A9;
hence x,p.(i+1) are_convertible_wrt R by A21,A23,A24,Lm3,Th30;
end;
end;
then
A25: for k being Nat st Z[k] holds Z[k+1];
A26: len p in dom p by FINSEQ_5:6;
A27: Z[ 0 ] by Lm1;
for i being Nat holds Z[i] from NAT_1:sch 2(A27,A25);
hence thesis by A20,A26;
end;
P is strongly-normalizing
proof
let f be ManySortedSet of NAT;
per cases;
suppose
not [f.0,f.(0+1)] in P;
hence thesis;
end;
suppose
A28: [f.0,f.(0+1)] in P;
take j = 0+1;
A29: f.j in X by A9,A28;
assume
A30: [f.j,f.(j+1)] in P;
then
A31: f.j in field R by A9;
then Class(Q,f.j) in Class Q by EQREL_1:def 3;
then consider x such that
A32: X /\ Class(Q,f.j) = {x} by A8;
f.(j+1) in field R & f.j,f.(j+1) are_convertible_wrt R by A9,A30;
then [f.j,f.(j+1)] in Q by A6,A31;
then [f.(j+1),f.j] in Q by EQREL_1:6;
then
A33: f.(j+1) in Class(Q,f.j) by EQREL_1:19;
f.j in Class(Q,f.j) by A31,EQREL_1:20;
then f.j in X /\ Class(Q,f.j) by A29,XBOOLE_0:def 4;
then
A34: f.j = x by A32,TARSKI:def 1;
f.(j+1) in X by A9,A30;
then f.(j+1) in X /\ Class(Q,f.j) by A33,XBOOLE_0:def 4;
then f.(j+1) = x by A32,TARSKI:def 1;
hence contradiction by A9,A30,A34;
end;
end;
then reconsider P as strongly-normalizing locally-confluent Relation by A10
;
take P;
thus field P c= field R
proof
let x be object;
assume x in field P;
then x in dom P or x in rng P by XBOOLE_0:def 3;
then (ex y being object st [x,y] in P) or
ex y being object st [y,x] in P by XTUPLE_0:def 12,def 13;
hence thesis by A9;
end;
let a,b be object;
thus thesis
proof
per cases;
suppose
a = b;
hence thesis by Th26,Th38;
end;
suppose
A35: a <> b;
hereby
assume
A36: a,b are_convertible_wrt R;
then
A37: b in field R by A35,Th32;
then Class(Q,b) in Class Q by EQREL_1:def 3;
then consider x such that
A38: X /\ Class(Q,b) = {x} by A8;
A39: a in field R by A35,A36,Th32;
then
A40: [a,b] in Q by A6,A36,A37;
thus a,b are_convergent_wrt P
proof
take x;
A41: x in {x} by TARSKI:def 1;
then
A42: x in X by A38,XBOOLE_0:def 4;
A43: x in Class(Q,b) by A38,A41,XBOOLE_0:def 4;
then [x,b] in Q by EQREL_1:19;
then [b,x] in Q by EQREL_1:6;
then b,x are_convertible_wrt R by A6;
then
A44: b = x or [b,x] in P by A9,A37,A38,A41,A42;
a in Class(Q,b) by A40,EQREL_1:19;
then [a,x] in Q by A43,EQREL_1:22;
then a,x are_convertible_wrt R by A6;
then a = x or [a,x] in P by A9,A39,A38,A41,A42;
hence thesis by A44,Th12,Th15;
end;
end;
given c being object such that
A45: P reduces a,c & P reduces b,c;
a,c are_convertible_wrt R & c,b are_convertible_wrt R by A18,A45,Lm5;
hence thesis by Th30;
end;
end;
end;
end;
definition
let R be Relation;
mode Completion of R -> complete Relation means
: Def28:
for a,b being object
holds a,b are_convertible_wrt R iff a,b are_convergent_wrt it;
existence
proof
ex Q being complete Relation st field Q c= field R &
for a,b being object
holds a,b are_convertible_wrt R iff a,b are_convergent_wrt Q by Th62;
hence thesis;
end;
end;
theorem
for R being Relation, C being Completion of R holds R,C are_equivalent
proof
let R be Relation, C be Completion of R, a,b be object;
a,b are_convertible_wrt R iff a,b are_convergent_wrt C by Def28;
hence thesis by Def23,Th37;
end;
theorem
for R being Relation, Q being complete Relation st R,Q are_equivalent
holds Q is Completion of R
proof
let R be Relation, Q be complete Relation such that
A1: for a,b being object holds a,b are_convertible_wrt R iff a,b
are_convertible_wrt Q;
let a,b be object;
a,b are_convertible_wrt R iff a,b are_convertible_wrt Q by A1;
hence thesis by Def23,Th37;
end;
theorem
for R being Relation, C being Completion of R, a,b being object holds a,b
are_convertible_wrt R iff nf(a,C) = nf(b,C)
proof
let R be Relation, C be Completion of R, a,b be object;
nf(a,C) is_a_normal_form_of a,C by Th54;
then
A1: C reduces a,nf(a,C);
a,b are_convergent_wrt C implies a,b are_convertible_wrt C by Th37;
hence a,b are_convertible_wrt R implies nf(a,C) = nf(b,C) by Def28,Th55;
nf(b,C) is_a_normal_form_of b,C by Th54;
then
A2: C reduces b,nf(b,C);
a,b are_convertible_wrt R iff a,b are_convergent_wrt C by Def28;
hence thesis by A1,A2;
end;