:: Consequences of the Sequent Calculus
:: by Patrick Braselmann and Peter Koepke
::
:: Received September 25, 2004
:: Copyright (c) 2004-2019 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, SUBSET_1, CQC_LANG, FINSEQ_1, ARYTM_3, XXREAL_0, TARSKI,
CARD_1, XBOOLE_0, NAT_1, FINSET_1, RELAT_1, ORDINAL4, FUNCT_1, CALCUL_1,
FUNCT_2, CQC_THE1, QC_LANG1, XBOOLEAN, FINSEQ_5, ARYTM_1, FINSEQ_2,
CALCUL_2;
notations TARSKI, XBOOLE_0, SUBSET_1, ORDINAL1, XCMPLX_0, CARD_1, NUMBERS,
XXREAL_0, NAT_1, RELAT_1, FUNCT_1, FINSEQ_1, QC_LANG1, CQC_LANG,
FINSET_1, FINSEQ_5, FINSEQ_2, RELSET_1, FUNCT_2, WELLORD2, CALCUL_1;
constructors PARTFUN1, WELLORD2, XXREAL_0, REAL_1, NAT_1, INT_1, FINSEQ_2,
FINSEQ_5, CALCUL_1, RELSET_1, QC_LANG1;
registrations FUNCT_1, ORDINAL1, RELSET_1, XXREAL_0, XREAL_0, NAT_1, INT_1,
FINSEQ_1, CQC_LANG, FUNCT_2, FINSEQ_2, CARD_1;
requirements REAL, NUMERALS, SUBSET, BOOLE, ARITHM;
definitions TARSKI, XBOOLE_0;
equalities XBOOLE_0, FINSEQ_2, CARD_1, ORDINAL1;
expansions TARSKI;
theorems TARSKI, FINSEQ_1, FINSEQ_3, FUNCT_1, XBOOLE_0, FINSEQ_2, RELAT_1,
NAT_1, XBOOLE_1, FUNCT_2, CALCUL_1, QC_LANG2, CARD_1, ORDINAL1, FUNCT_4,
FINSEQ_5, INT_1, XREAL_1, XXREAL_0, FUNCOP_1, AFINSQ_1;
schemes NAT_1, RECDEF_1;
begin :: f is Subsequence of g^f
reserve Al for QC-alphabet;
reserve p,q,p1,p2,q1 for Element of CQC-WFF(Al),
k,m,n,i for Element of NAT,
f, f1,f2,g for FinSequence of CQC-WFF(Al),
a,b,b1,b2,c for Nat;
definition
let m,n be Nat;
func seq(m,n) -> set equals
{k : 1+m <= k & k <= n+m };
coherence;
end;
definition
let m,n be Nat;
redefine func seq(m,n) -> Subset of NAT;
coherence
proof
set X = seq(m,n);
X c= NAT
proof
let x be object;
assume x in X;
then ex i st x = i & 1+m <= i & i <= n+m;
hence thesis;
end;
hence thesis;
end;
end;
theorem Th1:
c in seq(a,b) iff 1+a <= c & c <= b+a
proof
A1: c in { m : 1+a <= m & m <= b+a } iff ex m st c = m & 1+a <= m & m <= b+a;
c is Element of NAT by ORDINAL1:def 12;
hence thesis by A1;
end;
theorem Th2:
seq(a,0) = {}
proof
hereby
set x =the Element of seq(a,0);
assume
A1: seq(a,0) <> {};
then reconsider x as Element of NAT by TARSKI:def 3;
1+a <= x & x <= 0+a by A1,Th1;
hence contradiction by NAT_1:13;
end;
end;
theorem Th3:
b = 0 or b+a in seq(a,b)
proof
assume b <> 0;
then ex c be Nat st b = c + 1 by NAT_1:6;
then 1 <= b by NAT_1:11;
then b+a is Element of NAT & 1+a <= b+a by ORDINAL1:def 12,XREAL_1:6;
hence thesis;
end;
theorem Th4:
b1 <= b2 iff seq(a,b1) c= seq(a,b2)
proof
thus b1 <= b2 implies seq(a,b1) c= seq(a,b2)
proof
assume b1 <= b2;
then
A1: b1+a <= b2+a by XREAL_1:6;
let b be object such that
A2: b in seq(a,b1);
reconsider c = b as Element of NAT by A2;
c <= b1+a by A2,Th1;
then
A3: c <= b2+a by A1,XXREAL_0:2;
1+a <= c by A2,Th1;
hence thesis by A3;
end;
assume
A4: seq(a,b1) c= seq(a,b2);
now
assume b1 <> 0;
then b1+a in seq(a,b1) by Th3;
then b1+a <= b2+a by A4,Th1;
hence thesis by XREAL_1:6;
end;
hence thesis;
end;
theorem Th5:
seq(a,b) \/ {a+b+1} = seq(a,b+1)
proof
thus seq(a,b) \/ {a+b+1} c= seq(a,b+1)
proof
b+0 <= b+1 by XREAL_1:7;
then
A1: seq(a,b) c= seq(a,b+1) by Th4;
let x be object;
assume x in seq(a,b) \/ {a+b+1};
then x in seq(a,b) or x in {a+b+1} by XBOOLE_0:def 3;
then x in seq(a,b+1) or x = a+(b+1) by A1,TARSKI:def 1;
hence thesis by Th3;
end;
let x be object such that
A2: x in seq(a,b+1);
reconsider x as Element of NAT by A2;
x <= b+1+a by A2,Th1;
then
A3: x <= a+b or x = a+b+1 by NAT_1:8;
1+a <= x by A2,Th1;
then x in seq(a,b) or x in {a+b+1} by A3,TARSKI:def 1;
hence thesis by XBOOLE_0:def 3;
end;
theorem Th6:
seq(m,n),n are_equipotent
proof
defpred P[Nat] means seq(m,$1),$1 are_equipotent;
A1: for n being Nat st P[n] holds P[n+1]
proof
let n be Nat such that
A2: seq(m,n),n are_equipotent;
reconsider i = m+n as Nat;
A3: Segm(n+1) = Segm n \/ { n } by AFINSQ_1:2;
A4: now
assume seq(m,n) meets { i+1 };
then consider x being object such that
A5: x in seq(m,n) and
A6: x in { i+1 } by XBOOLE_0:3;
A7: not i+1 <= i by NAT_1:13;
x = i+1 by A6,TARSKI:def 1;
hence contradiction by A5,A7,Th1;
end;
A8: now
assume n meets { n };
then consider x being object such that
A9: x in n and
A10: x in { n } by XBOOLE_0:3;
A: x = n by A10,TARSKI:def 1;
reconsider x as set by TARSKI:1;
not x in x;
hence contradiction by A,A9;
end;
seq(m,n+1) = seq(m,n) \/ { i+1 } & { i+1 },{ n } are_equipotent by Th5,
CARD_1:28;
hence thesis by A2,A3,A8,A4,CARD_1:31;
end;
A11: P[0] by Th2;
for n being Nat holds P[n] from NAT_1:sch 2(A11,A1);
hence thesis;
end;
registration
let m,n;
cluster seq(m,n) -> finite;
coherence
proof
n is finite & n,seq(m,n) are_equipotent by Th6;
hence thesis by CARD_1:38;
end;
end;
registration
let Al;
let f;
cluster len f -> finite;
coherence;
end;
theorem Th7:
seq(m,n) c= Seg (m+n)
proof
let x be object;
A1: 1 <= 1+m by NAT_1:11;
assume
A2: x in seq(m,n);
then reconsider x as Element of NAT;
1+m <= x by A2,Th1;
then
A3: 1 <= x by A1,XXREAL_0:2;
x <= n+m by A2,Th1;
hence thesis by A3,FINSEQ_1:1;
end;
theorem
Seg n misses seq(n,m)
proof
assume Seg n meets seq(n,m);
then consider a being object such that
A1: a in Seg n and
A2: a in seq(n,m) by XBOOLE_0:3;
reconsider i = a as Element of NAT by A1;
i <= n & n+1 <= i by A1,A2,Th1,FINSEQ_1:1;
hence contradiction by NAT_1:13;
end;
theorem
for f,g be FinSequence holds dom(f^g) = dom f \/ seq(len f,len g)
proof
let f,g be FinSequence;
now
let a be object such that
A1: a in dom(f^g);
reconsider i = a as Element of NAT by A1;
A2: 1 <= i by A1,FINSEQ_3:25;
A3: i <= len(f^g) by A1,FINSEQ_3:25;
per cases;
suppose
A4: i <= len f;
A5: dom f c= dom f \/ seq(len f,len g) by XBOOLE_1:7;
i in dom f by A2,A4,FINSEQ_3:25;
hence a in dom f \/ seq(len f,len g) by A5;
end;
suppose
A6: len f < i;
A7: seq(len f,len g) c= dom f \/ seq(len f,len g) by XBOOLE_1:7;
A8: i <= len f+len g by A3,FINSEQ_1:22;
len f+1 <= i by A6,NAT_1:13;
then a in seq(len f,len g) by A8;
hence a in dom f \/ seq(len f,len g) by A7;
end;
end;
hence dom(f^g) c= dom f \/ seq(len f,len g);
let a be object such that
A9: a in dom f \/ seq(len f,len g);
per cases by A9,XBOOLE_0:def 3;
suppose
A10: a in dom f;
then reconsider i = a as Element of NAT;
A11: 1 <= i by A10,FINSEQ_3:25;
A12: len f <= len (f^g) by CALCUL_1:6;
i <= len f by A10,FINSEQ_3:25;
then i <= len (f^g) by A12,XXREAL_0:2;
hence thesis by A11,FINSEQ_3:25;
end;
suppose
A13: a in seq(len f,len g);
then reconsider i = a as Element of NAT;
i <= len g+len f by A13,Th1;
then
A14: i <= len (f^g) by FINSEQ_1:22;
A15: 1 <= 1+len f by NAT_1:11;
1+len f <= i by A13,Th1;
then 1 <= i by A15,XXREAL_0:2;
hence thesis by A14,FINSEQ_3:25;
end;
end;
theorem Th10:
len Sgm(seq(len g,len f)) = len f
proof
seq(len g,len f),len f are_equipotent by Th6;
then
A1: card seq(len g,len f) = card len f by CARD_1:5;
seq(len g,len f) c= Seg (len g + len f) by Th7;
hence thesis by A1,FINSEQ_3:39;
end;
theorem Th11:
dom Sgm(seq(len g,len f)) = dom f
proof
len Sgm(seq(len g,len f)) = len f by Th10;
hence thesis by FINSEQ_3:29;
end;
theorem Th12:
rng Sgm(seq(len g,len f)) = seq(len g,len f)
proof
seq(len g,len f) c= Seg (len g+len f) by Th7;
hence thesis by FINSEQ_1:def 13;
end;
theorem Th13:
i in dom Sgm(seq(len g,len f)) implies Sgm(seq(len g,len f)).i = len g+i
proof
defpred P[Nat] means 1 <= $1 & $1 <= len f implies
for i being Nat st 1 <= i & i <= $1 holds Sgm(seq(len g,len f)).i = len g+i;
assume
A1: i in dom Sgm(seq(len g,len f));
then i in dom f by Th11;
then
A2: i <= len f by FINSEQ_3:25;
A3: for k being Nat st P[k] holds P[k+1]
proof
let k be Nat such that
A4: P[k];
assume that
A5: 1 <= k+1 and
A6: k+1 <= len f;
let n be Nat such that
A7: 1 <= n and
A8: n <= k+1;
A9: now
assume
A10: n = k+1;
dom Sgm(seq(len g,len f)) = dom f by Th11;
then n in dom Sgm(seq(len g,len f)) by A5,A6,A10,FINSEQ_3:25;
then Sgm(seq(len g,len f)).n in rng Sgm(seq(len g,len f)) by FUNCT_1:3;
then reconsider i = Sgm(seq(len g,len f)).n as Element of NAT;
A11: now
assume
A12: i < len g+(k+1);
A13: now
assume k <> 0;
then
A14: 0+1 <= k by NAT_1:13;
then
A15: Sgm(seq(len g,len f)).k = len g+k by A4,A6,NAT_1:13;
then reconsider j = Sgm(seq(len g,len f)).k as Nat;
A16: seq(len g,len f) c= Seg (len g+len f) by Th7;
A17: k < k+1 & k+1 <= len Sgm(seq(len g,len f)) by A6,Th10,NAT_1:13;
i < len g+k+1 by A12;
then i <= j by A15,NAT_1:13;
hence contradiction by A10,A14,A17,A16,FINSEQ_1:def 13;
end;
now
1 <= len f by A5,A6,XXREAL_0:2;
then 1 in dom f by FINSEQ_3:25;
then
A18: 1 in dom Sgm(seq(len g,len f)) by Th11;
assume
A19: k = 0;
then not i in seq(len g,len f) by A12,Th1;
then not i in rng Sgm(seq(len g,len f)) by Th12;
hence contradiction by A10,A19,A18,FUNCT_1:3;
end;
hence contradiction by A13;
end;
now
1+len g <= 1+len g+k & len g+(k+1) <= len f+len g by A6,NAT_1:11
,XREAL_1:6;
then len g+(k+1) in seq(len g,len f);
then len g+(k+1) in rng Sgm(seq(len g,len f)) by Th12;
then consider l being Nat such that
A20: l in dom Sgm(seq(len g,len f)) and
A21: Sgm(seq(len g,len f)).l = len g+(k+1) by FINSEQ_2:10;
assume
A22: i > len g+(k+1);
A23: now
A24: now
assume
A25: l <= k;
now
assume 1 <= l;
then len g+(k+1) = len g+l by A4,A6,A21,A25,NAT_1:13
,XXREAL_0:2;
hence contradiction by A25,NAT_1:13;
end;
hence contradiction by A20,FINSEQ_3:25;
end;
assume l <= k+1;
hence contradiction by A10,A22,A21,A24,NAT_1:8;
end;
A26: 1 <= n & seq(len g,len f) c= Seg (len g+len f) by A10,Th7,NAT_1:11;
l <= len Sgm(seq(len g,len f)) by A20,FINSEQ_3:25;
hence contradiction by A10,A22,A21,A23,A26,FINSEQ_1:def 13;
end;
hence thesis by A10,A11,XXREAL_0:1;
end;
n <= k implies thesis by A4,A6,A7,NAT_1:13,XXREAL_0:2;
hence thesis by A8,A9,NAT_1:8;
end;
A27: P[0];
A28: for n being Nat holds P[n] from NAT_1:sch 2(A27,A3);
1 <= i by A1,FINSEQ_3:25;
hence thesis by A2,A28;
end;
theorem Th14:
seq(len g,len f) c= dom (g^f)
proof
let a be object such that
A1: a in seq(len g,len f);
reconsider n = a as Element of NAT by A1;
n <= len f+len g by A1,Th1;
then
A2: n <= len (g^f) by FINSEQ_1:22;
A3: 1 <= 1+len g by NAT_1:11;
1+len g <= n by A1,Th1;
then 1 <= n by A3,XXREAL_0:2;
hence a in dom (g^f) by A2,FINSEQ_3:25;
end;
theorem Th15:
dom((g^f)|seq(len g,len f)) = seq(len g,len f)
proof
dom((g^f)|seq(len g,len f)) = dom (g^f) /\ seq(len g,len f) by RELAT_1:61;
hence thesis by Th14,XBOOLE_1:28;
end;
theorem Th16:
Seq((g^f)|seq(len g,len f)) = Sgm(seq(len g,len f)) * (g^f)
proof
reconsider gf = (g^f)|seq(len g,len f) as FinSubsequence;
Seq(gf) = gf * Sgm(dom(gf)) by FINSEQ_1:def 14
.= gf * Sgm(seq(len g,len f)) by Th15
.= (((g^f)|rng Sgm(seq(len g,len f))) qua Function) * (Sgm(seq(len g,len
f)) qua Function) by Th12
.= ((g^f) qua Function) * (Sgm(seq(len g,len f)) qua Function) by FUNCT_4:2
;
hence thesis;
end;
theorem Th17:
dom Seq((g^f)|seq(len g,len f)) = dom f
proof
rng Sgm(seq(len g,len f)) = seq(len g,len f) by Th12;
then
A1: rng Sgm(seq(len g,len f)) c= dom (g^f) by Th14;
dom Seq((g^f)|seq(len g,len f)) = dom (Sgm(seq(len g,len f)) * (g^f)) by Th16
;
then dom Seq((g^f)|seq(len g,len f)) = dom Sgm(seq(len g,len f)) by A1,
RELAT_1:27;
hence thesis by Th11;
end;
theorem Th18:
f is_Subsequence_of g^f
proof
A1: for i be Nat st i in dom Seq((g^f)|seq(len g,len f)) holds Seq((g^f)|seq
(len g,len f)).i = f.i
proof
let i be Nat;
assume i in dom Seq((g^f)|seq(len g,len f));
then
A2: i in dom f by Th17;
then
A3: i in dom Sgm(seq(len g,len f)) by Th11;
Seq((g^f)|seq(len g,len f)).i = (Sgm(seq(len g,len f)) * (g^f)).i by Th16;
then Seq((g^f)|seq(len g,len f)).i = (g^f).(Sgm(seq(len g,len f)).i) by A3,
FUNCT_1:13;
then Seq((g^f)|seq(len g,len f)).i = (g^f).(len g+i) by A3,Th13;
hence thesis by A2,FINSEQ_1:def 7;
end;
dom Seq((g^f)|seq(len g,len f)) = dom f by Th17;
then Seq((g^f)|seq(len g,len f)) = f by A1,FINSEQ_1:13;
hence thesis by CALCUL_1:def 4;
end;
definition
let D be non empty set, f be FinSequence of D;
let P be Permutation of dom f;
func Per(f,P) -> FinSequence of D equals
P*f;
coherence
proof
A1: rng P = dom f by FUNCT_2:def 3;
then dom (P*f) = dom P by RELAT_1:27;
then dom (P*f) = dom f by FUNCT_2:52;
then ex n being Nat st dom (P*f) = Seg n by FINSEQ_1:def 2;
then reconsider F = P*f as FinSequence by FINSEQ_1:def 2;
rng F = rng f by A1,RELAT_1:28;
hence thesis by FINSEQ_1:def 4;
end;
end;
reserve P for Permutation of dom f;
theorem Th19:
dom Per(f,P) = dom f
proof
rng P = dom f by FUNCT_2:def 3;
then dom (P*f) = dom P by RELAT_1:27;
hence thesis by FUNCT_2:52;
end;
theorem Th20:
|- f^<*p*> implies |- g^f^<*p*>
proof
Suc(f^<*p*>) = p by CALCUL_1:5;
then
A1: Suc(f^<*p*>) = Suc(g^f^<*p*>) by CALCUL_1:5;
Ant(f^<*p*>) = f by CALCUL_1:5;
then Ant(f^<*p*>) is_Subsequence_of g^f by Th18;
then
A2: Ant(f^<*p*>) is_Subsequence_of Ant(g^f^<*p*>) by CALCUL_1:5;
assume |- f^<*p*>;
hence thesis by A2,A1,CALCUL_1:36;
end;
begin :: The Ordering of the Antecedent is Irrelevant
definition
let Al,f;
func Begin(f) -> Element of CQC-WFF(Al) means
:Def3:
it = f.1 if 1 <= len f otherwise it = VERUM(Al);
existence
proof
1 <= len f implies ex p st p = f.1
proof
assume 1 <= len f;
then 1 in dom f by FINSEQ_3:25;
then f.1 in CQC-WFF(Al) by FINSEQ_2:11;
hence thesis;
end;
hence thesis;
end;
uniqueness;
consistency;
end;
definition
let Al,f;
assume
A1: 1 <= len f;
func Impl(f) -> Element of CQC-WFF(Al) means
:Def4:
ex F being FinSequence of
CQC-WFF(Al) st it = F.(len f) & len F = len f & (F.1 = Begin(f) or len f = 0)
& for n being Nat st 1 <= n & n < len f holds ex p,q st p = f.(n+1) &
q = F.n & F.(n+1) = p => q;
existence
proof
defpred P[Nat,set,set] means ex p,q st p = f.($1+1) & q = $2 &
$3 = p => q;
A2: for n being Nat st 1 <= n & n < len f
for x being Element of CQC-WFF(Al) ex y
being Element of CQC-WFF(Al) st P[n,x,y]
proof
let n be Nat such that
1 <= n and
A3: n < len f;
1 <= n+1 & n+1 <= len f by A3,NAT_1:11,13;
then n+1 in dom f by FINSEQ_3:25;
then reconsider p = f.(n+1) as Element of CQC-WFF(Al) by FINSEQ_2:11;
let x be Element of CQC-WFF(Al);
take p => x,p,x;
thus thesis;
end;
consider F being FinSequence of CQC-WFF(Al) such that
A4: len F = len f & (F.1 = Begin(f) or len f = 0) &
for n being Nat st 1 <= n &
n < len f holds P[n,F.n,F.(n+1)] from RECDEF_1:sch 4(A2);
len f in dom F by A1,A4,FINSEQ_3:25;
then reconsider p = F.(len f) as Element of CQC-WFF(Al) by FINSEQ_2:11;
take p;
thus thesis by A4;
end;
uniqueness
proof
defpred P[Nat,set,set] means ex p,q st p = f.($1+1) & q = $2 &
$3 = p => q;
let p1,p2 such that
A5: ex F being FinSequence of CQC-WFF(Al) st p1 = F.(len f) & len F = len
f & (F.1 = Begin(f) or len f = 0) &
for n being Nat st 1 <= n & n < len f holds P[n,F.n,F
.(n+1)] and
A6: ex F being FinSequence of CQC-WFF(Al) st p2 = F.(len f) & len F = len
f & (F.1 = Begin(f) or len f = 0) &
for n being Nat st 1 <= n & n < len f holds P[n,F.n,F
.(n+1)];
consider H being FinSequence of CQC-WFF(Al) such that
A7: p2 = H.(len f) and
A8: len H = len f & (H.1 = Begin(f) or len f = 0) &
for n being Nat st 1 <= n &
n < len f holds P[n,H.n,H.(n+1)] by A6;
consider G being FinSequence of CQC-WFF(Al) such that
A9: p1 = G.(len f) and
A10: len G = len f & (G.1 = Begin(f) or len f = 0) &
for n being Nat st 1 <= n &
n < len f holds P[n,G.n,G.(n+1)] by A5;
A11: for n being Nat st 1 <= n & n < len f
for x,y1,y2 being Element of CQC-WFF(Al) st P
[n,x,y1] & P[n,x,y2] holds y1 = y2;
G = H from RECDEF_1:sch 8(A11,A10,A8);
hence thesis by A9,A7;
end;
end;
:: Some details about the calculus in CALCUL_1
theorem Th21:
|- f^<*p*>^<*p*>
proof
len(f^<*p*>) in dom(f^<*p*>) by CALCUL_1:10;
then len f + len <*p*> in dom(f^<*p*>) by FINSEQ_1:22;
then
A1: len f+1 in dom(f^<*p*>) by FINSEQ_1:39;
(f^<*p*>).(len f+1) = p by FINSEQ_1:42;
then p is_tail_of f^<*p*> by A1,CALCUL_1:def 16;
then Suc(f^<*p*>^<*p*>) is_tail_of f^<*p*> by CALCUL_1:5;
then Suc(f^<*p*>^<*p*>) is_tail_of Ant(f^<*p*>^<*p*>) by CALCUL_1:5;
hence thesis by CALCUL_1:33;
end;
theorem Th22:
|- f^<*p '&' q*> implies |- f^<*p*>
proof
A1: p '&' q = Suc(f^<*p '&' q*>) by CALCUL_1:5;
assume |- f^<*p '&' q*>;
then |- Ant(f^<*p '&' q*>)^<*p*> by A1,CALCUL_1:40;
hence thesis by CALCUL_1:5;
end;
theorem Th23:
|- f^<*p '&' q*> implies |- f^<*q*>
proof
A1: p '&' q = Suc(f^<*p '&' q*>) by CALCUL_1:5;
assume |- f^<*p '&' q*>;
then |- Ant(f^<*p '&' q*>)^<*q*> by A1,CALCUL_1:41;
hence thesis by CALCUL_1:5;
end;
theorem Th24:
|- f^<*p*> & |- f^<*p*>^<*q*> implies |- f^<*q*>
proof
A1: 1 <= len (f^<*p*>) by CALCUL_1:10;
assume |- f^<*p*> & |- f^<*p*>^<*q*>;
then |- Ant(f^<*p*>)^<*q*> by A1,CALCUL_1:45;
hence thesis by CALCUL_1:5;
end;
theorem Th25:
|- f^<*p*> & |- f^<*'not' p*> implies |- f^<*q*>
proof
A1: Ant(f^<*p*>) = f & Suc(f^<*p*>) = p by CALCUL_1:5;
assume |- f^<*p*> & |- f^<*'not' p*>;
hence thesis by A1,CALCUL_1:44;
end;
theorem Th26:
|- f^<*p*>^<*q*> & |- f^<*'not' p*>^<*q*> implies |- f^<*q*>
proof
set f1 = f^<*p*>^<*q*>;
set f2 = f^<*'not' p*>^<*q*>;
assume
A1: |- f1 & |- f2;
A2: Ant(f2) = f^<*'not' p*> by CALCUL_1:5;
A3: Ant(f1) = f^<*p*> by CALCUL_1:5;
then Suc(Ant(f1)) = p by CALCUL_1:5;
then
A4: 'not' Suc(Ant(f1)) = Suc(Ant(f2)) by A2,CALCUL_1:5;
A5: 1 < len f1 & 1 < len f2 by CALCUL_1:9;
A6: Suc(f1) = q by CALCUL_1:5;
then
A7: Suc(f1) = Suc(f2) by CALCUL_1:5;
A8: Ant(Ant(f1)) = f by A3,CALCUL_1:5;
then Ant(Ant(f1)) = Ant(Ant(f2)) by A2,CALCUL_1:5;
hence thesis by A1,A8,A4,A6,A5,A7,CALCUL_1:37;
end;
theorem Th27:
|- f^<*p*>^<*q*> implies |- f^<*p => q*>
proof
assume
A1: |- f^<*p*>^<*q*>;
set g1 = f^<*p '&' 'not' q*>^<*p*>^<*q*>;
set g = f^<*p*>^<*q*>;
A2: Ant(g1) = f^<*p '&' 'not' q*>^<*p*> by CALCUL_1:5;
Suc(g) = q by CALCUL_1:5;
then
A3: Suc(g1) = Suc(g) by CALCUL_1:5;
A4: Ant(g) = f^<*p*> by CALCUL_1:5;
then
A5: 0+1 <= len Ant(g) by CALCUL_1:10;
A6: |- f^<*p '&' 'not' q*>^<*p '&' 'not' q*> by Th21;
then
A7: |- f^<*p '&' 'not' q*>^<*p*> by Th22;
Ant(Ant(g)) = f & Suc(Ant(g)) = p by A4,CALCUL_1:5;
then |- g1 by A1,A5,A3,A2,CALCUL_1:13,36;
then
A8: |- f^<*p '&' 'not' q*>^<*q*> by A7,Th24;
A9: |- f^<*'not' (p '&' 'not' q)*>^<*'not' (p '&' 'not' q)*> by Th21;
|- f^<*p '&' 'not' q*>^<*'not' q*> by A6,Th23;
then |- f^<*p '&' 'not' q*>^<*'not' (p '&' 'not' q)*> by A8,Th25;
then |- f^<*'not' (p '&' 'not' q)*> by A9,Th26;
hence thesis by QC_LANG2:def 2;
end;
theorem Th28:
1 <= len g & |- f^g implies |- f^<*Impl(Rev g)*>
proof
set h = Rev g;
assume that
A1: 1 <= len g and
A2: |- f^g;
A3: 1 <= len h by A1,FINSEQ_5:def 3;
then consider F being FinSequence of CQC-WFF(Al) such that
A4: Impl(h) = F.(len h) and
A5: len F = len h and
A6: F.1 = Begin(h) or len h = 0 and
A7: for n being Nat st 1 <= n & n < len h
ex p,q st p = h.(n+1) & q = F.n &
F.(n+1) = p => q by Def4;
A8: 1 <= len h by A1,FINSEQ_5:def 3;
defpred P[Nat] means 1 <= $1 & $1 <= len F implies ex f1,f2,n st
$1+n = len (f^g) & f1 = (f^g)|Seg n & f2 = f1^<*F.$1*> & |- f2;
A9: for k being Nat st P[k] holds P[k+1]
proof
let k be Nat such that
A10: P[k];
A11: len g <= len (f^g) by CALCUL_1:6;
assume that
A12: 1 <= k+1 and
A13: k+1 <= len F;
A14: k+1 <= len g by A5,A13,FINSEQ_5:def 3;
then consider n being Nat such that
A15: len (f^g) = (k+1)+n by A11,NAT_1:10,XXREAL_0:2;
reconsider n as Element of NAT by ORDINAL1:def 12;
A16: now
k+1 in dom F by A12,A13,FINSEQ_3:25;
then reconsider r = F.(k+1) as Element of CQC-WFF(Al) by FINSEQ_2:11;
set f1 = (f^g)|Seg n;
reconsider f1 as FinSequence of CQC-WFF(Al) by FINSEQ_1:18;
set f2 = f1^<*r*>;
len(f^g) <= len(f^g) + k by NAT_1:11;
then
A17: len(f^g) - k <= len(f^g) + k - k by XREAL_1:9;
assume k <> 0;
then
A18: 0+1 <= k by NAT_1:13;
then consider f1k being FinSequence of CQC-WFF(Al) such that
A19: ex f2,n st k+n = len (f^g) & f1k = (f^g)|Seg n & f2 = f1k^<*F.k
*> & |- f2 by A10,A13,NAT_1:13;
consider f2k being FinSequence of CQC-WFF(Al) such that
A20: ex n st k+n = len (f^g) & f1k = (f^g)|Seg n & f2k = f1k^<*F.k*>
& |- f2k by A19;
consider nk being Element of NAT such that
A21: k+nk = len (f^g) and
A22: f1k = (f^g)|Seg nk & f2k = f1k^<*F.k*> and
A23: |- f2k by A20;
1 <= n+1 by NAT_1:11;
then
A24: nk in dom (f^g) by A15,A21,A17,FINSEQ_3:25;
then reconsider p = (f^g).nk as Element of CQC-WFF(Al) by FINSEQ_2:11;
n+1 = nk by A15,A21;
then
A25: f2k = f1^<*(f^g).nk*>^<*F.k*> by A22,A24,FINSEQ_5:10;
A26: k < len h by A5,A13,NAT_1:13;
then consider p1,q1 such that
A27: p1 = h.(k+1) and
A28: q1 = F.k & F.(k+1) = p1 => q1 by A7,A18;
k+1 in dom h by A5,A12,A13,FINSEQ_3:25;
then k+1 in dom g by FINSEQ_5:57;
then
A29: p1 = g.(len g - (k+1) +1) by A27,FINSEQ_5:58
.= g.(len g - k);
k < len g by A26,FINSEQ_5:def 3;
then
A30: k+(-k) < len g+(-k) by XREAL_1:8;
then reconsider i = len g-k as Element of NAT by INT_1:3;
len g <= k+len g by NAT_1:11;
then
A31: i <= len g by XREAL_1:20;
0+1 <= i by A30,INT_1:7;
then i in dom g by A31,FINSEQ_3:25;
then p1 = (f^g).(len f+i) by A29,FINSEQ_1:def 7
.= (f^g).(len f+len g-k)
.= (f^g).(len(f^g)-k) by FINSEQ_1:22
.= p by A21;
then |- f2 by A23,A25,A28,Th27;
hence thesis by A15;
end;
A32: k+1 <= len (f^g) by A14,A11,XXREAL_0:2;
now
F.1 = h.1 by A3,A6,Def3;
then
A33: F.1 = g.(len g) by FINSEQ_5:62;
set f1 = (f^g)|Seg n;
reconsider f1 as FinSequence of CQC-WFF(Al) by FINSEQ_1:18;
set f2 = f1^<*F.1*>;
A34: len g in dom g by A1,FINSEQ_3:25;
assume
A35: k = 0;
then
A36: (f^g).(n+1) = (f^g).(len f+len g) by A15,FINSEQ_1:22;
1 <= len(f^g) by A12,A32,XXREAL_0:2;
then len(f^g) in dom (f^g) by FINSEQ_3:25;
then (f^g)|Seg(n+1) = f1^<*(f^g).(n+1)*> by A15,A35,FINSEQ_5:10;
then f2 = (f^g)|Seg(len (f^g)) by A15,A35,A33,A34,A36,FINSEQ_1:def 7;
then
A37: f2 = (f^g)|dom(f^g) by FINSEQ_1:def 3;
then reconsider f2 as FinSequence of CQC-WFF(Al) by RELAT_1:69;
take f1,f2,n;
|- f2 by A2,A37,RELAT_1:69;
hence thesis by A15,A35;
end;
hence thesis by A16;
end;
A38: P[0];
for k being Nat holds P[k] from NAT_1:sch 2(A38,A9);
then consider f1 such that
A39: ex f2,n st len h+n = len (f^g) & f1 = (f^g)|Seg n & f2 = f1^<*F.(
len h)*> & |- f2 by A5,A8;
consider f2 such that
A40: ex n st len h+n = len (f^g) & f1 = (f^g)|Seg n & f2 = f1^<*F.(len h
)*> & |- f2 by A39;
consider n such that
A41: len h+n = len (f^g) and
A42: f1 = (f^g)|Seg n & f2 = f1^<*F.(len h)*> & |- f2 by A40;
n+len h-len h = len(f^g)-len g by A41,FINSEQ_5:def 3;
then n+len h+(-len h) = len f + len g-len g by FINSEQ_1:22;
then Seg n = dom f by FINSEQ_1:def 3;
hence thesis by A4,A42,FINSEQ_1:21;
end;
theorem Th29:
|- Per(f,P)^<*Impl(Rev (f^<*p*>))*> implies |- Per(f,P)^<*p*>
proof
set g = f^<*p*>;
set h = Rev g;
A1: 1 <= len g by CALCUL_1:10;
then
A2: 1 <= len h by FINSEQ_5:def 3;
then consider F being FinSequence of CQC-WFF(Al) such that
A3: Impl(h) = F.(len h) and
A4: len F = len h and
A5: F.1 = Begin(h) or len h = 0 and
A6: for n being Nat st 1 <= n & n < len h
ex p,q st p = h.(n+1) & q = F.n &
F.(n+1) = p => q by Def4;
set H = Rev F;
A7: 1 <= len H by A2,A4,FINSEQ_5:def 3;
defpred P[Nat] means 1 <= $1 & $1 <= len H implies ex p st p = H.
$1 & |- Per(f,P)^<*p*>;
assume
A8: |- Per(f,P)^<*Impl(Rev (f^<*p*>))*>;
A9: for k being Nat st P[k] holds P[k+1]
proof
let k be Nat such that
A10: P[k];
assume that
A11: 1 <= k+1 and
A12: k+1 <= len H;
A13: now
A14: k < len H by A12,NAT_1:13;
then 0+k < len F by FINSEQ_5:def 3;
then
A15: 0+k+(-k) < len F+(-k) by XREAL_1:8;
then reconsider i = len F-k as Element of NAT by INT_1:3;
A16: len g-i = len g - (len g-k) by A4,FINSEQ_5:def 3
.= k;
then reconsider j = len g-i as Nat;
A17: 0+1 <= i by A15,NAT_1:13;
then
A18: 1 <= i+1 by NAT_1:13;
assume
A19: k <> 0;
then
A20: 0+1 <= k by NAT_1:13;
then consider pk being Element of CQC-WFF(Al) such that
A21: pk = H.k and
A22: |- Per(f,P)^<*pk*> by A10,A12,NAT_1:13;
len F < len F+k by A19,XREAL_1:29;
then
A23: len F+(-k) < len F+k+(-k) by XREAL_1:8;
then consider p1,q1 such that
A24: p1 = h.(i+1) and
A25: q1 = F.i and
A26: F.(i+1) = p1 => q1 by A4,A6,A17;
take q1;
k+1 in dom H by A11,A12,FINSEQ_3:25;
then i = len F-(k+1)+1 & k+1 in dom F by FINSEQ_5:57;
then
A27: q1 = H.(k+1) by A25,FINSEQ_5:58;
len g < len g+i by A15,XREAL_1:29;
then len g+(-i) < len g+i+(-i) by XREAL_1:8;
then j < len f+len <*p*> by FINSEQ_1:22;
then j < len f+1 by FINSEQ_1:39;
then j <= len f by NAT_1:13;
then
A28: j in dom f by A20,A16,FINSEQ_3:25;
then
A29: g.j = (g|dom f).j by FUNCT_1:49;
j in rng P by A28,FUNCT_2:def 3;
then consider a being object such that
A30: a in dom P and
A31: P.a = j by FUNCT_1:def 3;
A32: a in dom f by A30;
then reconsider j1 = a as Element of NAT;
set g1 = Per(f,P)^<*p1*>;
i+1 <= len h by A4,A23,NAT_1:13;
then i+1 in dom h by A18,FINSEQ_3:25;
then i+1 in dom g by FINSEQ_5:57;
then p1 = g.(len g - (i+1) + 1) by A24,FINSEQ_5:58
.= g.(len g - i);
then p1 = f.(P.j1) by A29,A31,FINSEQ_1:21;
then p1 = (P*f).j1 by A30,FUNCT_1:13;
then Suc(g1) = Per(f,P).j1 by CALCUL_1:5;
then
A33: Suc(g1) = (Ant(g1)).j1 by CALCUL_1:5;
j1 in dom Per(f,P) by A32,Th19;
then j1 in dom Ant(g1) by CALCUL_1:5;
then Suc(g1) is_tail_of Ant(g1) by A33,CALCUL_1:def 16;
then
A34: |- g1 by CALCUL_1:33;
k in dom H by A20,A14,FINSEQ_3:25;
then k in dom F by FINSEQ_5:57;
then pk = p1 => q1 by A21,A26,FINSEQ_5:58;
then |- Per(f,P)^<*q1*> by A22,A34,CALCUL_1:56;
hence thesis by A27;
end;
now
1 <= len H by A2,A4,FINSEQ_5:def 3;
then
A35: 1 in dom H by FINSEQ_3:25;
then reconsider p = H.1 as Element of CQC-WFF(Al) by FINSEQ_2:11;
assume
A36: k = 0;
take p;
1 in dom F by A35,FINSEQ_5:57;
then p = F.(len F-1+1) by FINSEQ_5:58
.= Impl(h) by A3,A4;
hence thesis by A8,A36;
end;
hence thesis by A13;
end;
A37: P[0];
for k being Nat holds P[k] from NAT_1:sch 2(A37,A9);
then consider q such that
A38: q = H.(len H) and
A39: |- Per(f,P)^<*q*> by A7;
q = H.(len F) by A38,FINSEQ_5:def 3;
then q = Begin(h) by A1,A5,FINSEQ_5:62,def 3;
then q = h.1 by A2,Def3;
then q = g.(len g) by FINSEQ_5:62;
then q = g.(len f+len <*p*>) by FINSEQ_1:22;
then q = g.(len f+1) by FINSEQ_1:39;
hence thesis by A39,FINSEQ_1:42;
end;
theorem
|- f^<*p*> implies |- Per(f,P)^<*p*>
proof
set g = f^<*p*>;
assume |- f^<*p*>;
then |- Per(f,P)^f^<*p*> by Th20;
then
A1: |- Per(f,P)^g by FINSEQ_1:32;
1 <= len(g) by CALCUL_1:10;
then |- Per(f,P)^<*Impl(Rev g)*> by A1,Th28;
hence thesis by Th29;
end;
begin :: Multiple Occurrence in the Antecedent is Irrelevant
notation
let n;
let c be set;
synonym IdFinS(c,n) for n |-> c;
end;
theorem Th31:
for c being set st 1 <= n holds rng IdFinS(c,n) = rng <*c*>
proof
let c be set such that
A1: 1 <= n;
n in Seg n by A1,FINSEQ_1:1;
then
A2: IdFinS(c,n).n = c by FUNCOP_1:7;
thus rng IdFinS(c,n) c= rng <*c*>
proof
let a be object;
assume a in rng IdFinS(c,n);
then consider i being Nat such that
A3: i in dom IdFinS(c,n) and
A4: IdFinS(c,n).i = a by FINSEQ_2:10;
i in Seg len IdFinS(c,n) by A3,FINSEQ_1:def 3;
then i in Seg n by CARD_1:def 7;
then a = c by A4,FUNCOP_1:7;
then a in {c} by TARSKI:def 1;
hence thesis by FINSEQ_1:38;
end;
let a be object;
assume a in rng <*c*>;
then a in {c} by FINSEQ_1:38;
then
A5: a = c by TARSKI:def 1;
n = len IdFinS(c,n) by CARD_1:def 7;
then n in dom IdFinS(c,n) by A1,FINSEQ_3:25;
hence thesis by A5,A2,FUNCT_1:def 3;
end;
definition
let D be non empty set, n be Element of NAT, p be Element of D;
redefine func IdFinS(p,n) -> FinSequence of D;
coherence
proof
now
let i be Nat;
assume i in dom IdFinS(p,n);
then i in Seg len IdFinS(p,n) by FINSEQ_1:def 3;
then i in Seg n by CARD_1:def 7;
then IdFinS(p,n).i = p by FUNCOP_1:7;
hence IdFinS(p,n).i in D;
end;
hence thesis by FINSEQ_2:12;
end;
end;
theorem
1 <= n & |- f^IdFinS(p,n)^<*q*> implies |- f^<*p*>^<*q*>
proof
assume that
A1: 1 <= n and
A2: |- f^IdFinS(p,n)^<*q*>;
set g = f^IdFinS(p,n)^<*q*>;
set h = Rev g;
A3: 1 <= len g by CALCUL_1:10;
then
A4: 1 <= len h by FINSEQ_5:def 3;
then consider F being FinSequence of CQC-WFF(Al) such that
A5: Impl(h) = F.(len h) and
A6: len F = len h and
A7: F.1 = Begin(h) or len h = 0 and
A8: for n being Nat st 1 <= n & n < len h
ex p,q st p = h.(n+1) & q = F.n &
F.(n+1) = p => q by Def4;
set H = Rev F;
A9: 1 <= len H by A4,A6,FINSEQ_5:def 3;
defpred P[Nat] means 1 <= $1 & $1 <= len H implies ex p1 st p1 =
H.$1 & |- f^<*p*>^<*p1*>;
|- f^<*p*>^(f^IdFinS(p,n))^<*q*> by A2,Th20;
then |- f^<*p*>^(f^IdFinS(p,n)^<*q*>) by FINSEQ_1:32;
then
A10: |- f^<*p*>^<*Impl(Rev g)*> by A3,Th28;
A11: for k being Nat st P[k] holds P[k+1]
proof
let k be Nat such that
A12: P[k];
assume that
A13: 1 <= k+1 and
A14: k+1 <= len H;
A15: now
A16: k < len H by A14,NAT_1:13;
then 0+k < len F by FINSEQ_5:def 3;
then
A17: 0+k+(-k) < len F+(-k) by XREAL_1:8;
then reconsider i = len F-k as Element of NAT by INT_1:3;
A18: len g-i = len g - (len g-k) by A6,FINSEQ_5:def 3
.= k;
A19: 0+1 <= i by A17,NAT_1:13;
then
A20: 1 <= i+1 by NAT_1:13;
assume
A21: k <> 0;
then
A22: 0+1 <= k by NAT_1:13;
then consider pk being Element of CQC-WFF(Al) such that
A23: pk = H.k and
A24: |- f^<*p*>^<*pk*> by A12,A14,NAT_1:13;
len F < len F+k by A21,XREAL_1:29;
then
A25: len F+(-k) < len F+k+(-k) by XREAL_1:8;
then consider p1,q1 such that
A26: p1 = h.(i+1) and
A27: q1 = F.i and
A28: F.(i+1) = p1 => q1 by A6,A8,A19;
set g1 = f^<*p*>^<*p1*>;
A29: Suc(g1) = p1 by CALCUL_1:5;
len g < len g+i by A17,XREAL_1:29;
then len g+(-i) < len g+i+(-i) by XREAL_1:8;
then k < len(f^IdFinS(p,n)) + len <*q*> by FINSEQ_1:22,A18;
then k < len(f^IdFinS(p,n))+1 by FINSEQ_1:39;
then k <= len(f^IdFinS(p,n)) by NAT_1:13;
then
A30: k in dom (f^IdFinS(p,n)) by A22,FINSEQ_3:25;
then
A31: g.k = (g|dom(f^IdFinS(p,n))).k by FUNCT_1:49;
A32: (f^IdFinS(p,n)).k in rng (f^IdFinS(p,n)) by A30,FUNCT_1:3;
rng (f^IdFinS(p,n)) = (rng f \/ rng IdFinS(p,n)) by FINSEQ_1:31
.=(rng f \/ rng <*p*>) by A1,Th31
.= rng (f^<*p*>) by FINSEQ_1:31;
then
A33: (f^IdFinS(p,n)).k in rng Ant(g1) by A32,CALCUL_1:5;
i+1 <= len h by A6,A25,NAT_1:13;
then i+1 in dom h by A20,FINSEQ_3:25;
then i+1 in dom g by FINSEQ_5:57;
then p1 = g.(len g - (i+1) + 1) by A26,FINSEQ_5:58
.= g.(len g - i);
then p1 = (f^IdFinS(p,n)).k by A31,FINSEQ_1:21,A18;
then ex j1 being Nat st j1 in dom Ant(g1) & (Ant(g1)).j1 = p1 by A33,
FINSEQ_2:10;
then Suc(g1) is_tail_of Ant(g1) by A29,CALCUL_1:def 16;
then
A34: |- g1 by CALCUL_1:33;
take q1;
k+1 in dom H by A13,A14,FINSEQ_3:25;
then i = len F-(k+1)+1 & k+1 in dom F by FINSEQ_5:57;
then
A35: q1 = H.(k+1) by A27,FINSEQ_5:58;
k in dom H by A22,A16,FINSEQ_3:25;
then k in dom F by FINSEQ_5:57;
then pk = p1 => q1 by A23,A28,FINSEQ_5:58;
then |- f^<*p*>^<*q1*> by A24,A34,CALCUL_1:56;
hence thesis by A35;
end;
now
len H = len h by A6,FINSEQ_5:def 3;
then
A36: 1 in dom H by A4,FINSEQ_3:25;
then reconsider p1 = H.1 as Element of CQC-WFF(Al) by FINSEQ_2:11;
assume
A37: k = 0;
take p1;
1 in dom F by A36,FINSEQ_5:57;
then p1 = F.(len F-1+1) by FINSEQ_5:58
.= Impl(h) by A5,A6;
hence thesis by A10,A37;
end;
hence thesis by A15;
end;
A38: P[0];
for k being Nat holds P[k] from NAT_1:sch 2(A38,A11);
then consider p1 such that
A39: p1 = H.(len H) and
A40: |- f^<*p*>^<*p1*> by A9;
p1 = H.(len F) by A39,FINSEQ_5:def 3;
then p1 = Begin(h) by A3,A7,FINSEQ_5:62,def 3;
then p1 = h.1 by A4,Def3;
then p1 = g.(len g) by FINSEQ_5:62;
then p1 = g.(len(f^IdFinS(p,n))+len <*q*>) by FINSEQ_1:22;
then p1 = g.(len(f^IdFinS(p,n))+1) by FINSEQ_1:39;
hence thesis by A40,FINSEQ_1:42;
end;