VARIABLE DEFINICION CONCEPTUAL
2 METODOLOGÍA DE LA INVESTIGACIÓN 3.1 Ámbito de estudio
3.9. Técnicas de procesamiento y análisis de datos
This file uses Multiset.thy, which is included in theIsabelle distribution. datatypeform =At nat
|Imp form form (-⊃-[100,100]110)
|Conj form form (-∧∗-[100,100]110)
|Disj form form (-∨∗-[100,100]110)
|ff
abbreviation
multiset-plus (infixl⊕80)where
(Γ ::form multiset)⊕(A::form) ≡Γ + {#A#}
abbreviation
multiset-minus (infixl 80)where
(Γ ::form multiset) (A::form) ≡Γ− {#A#}
inductive
provable ::form multiset ⇒form ⇒ nat ⇒bool (-⇒-↓-[60,60,60]60) where
|LBot[intro]: [[ff :# Γ]] =⇒Γ⇒C ↓0 |ConjR[intro]: [[Γ⇒A↓n ; Γ⇒B ↓m]] =⇒Γ⇒A∧∗B ↓n+m+1 |ConjL[intro]: [[Γ⊕A⊕B ⇒C ↓n]] =⇒Γ⊕A∧∗B ⇒C ↓n+1 |DisjR1[intro]: [[Γ⇒A↓n]] =⇒Γ⇒A∨∗B ↓n+1 |DisjR2[intro]: [[Γ⇒B ↓n]] =⇒Γ⇒A∨∗B ↓n+1 |DisjL[intro]: [[Γ⊕A⇒C ↓n ; Γ⊕B ⇒C ↓m]] =⇒Γ⊕A∨∗B ⇒C ↓n+m+1 |ImpR[intro]: [[ Γ⊕A⇒B ↓n]] =⇒Γ⇒A⊃B ↓n+1 |ImpL0[intro]: [[Γ⊕At i ⊕B ⇒C ↓n]] =⇒Γ⊕At i ⊕(At i ⊃B)⇒C ↓n+1 |ImpLC[intro]: [[Γ⊕A⊃(B ⊃C) ⇒D ↓n]] =⇒Γ⊕(A∧∗B)⊃C ⇒D ↓n+1 |ImpLD[intro]: [[Γ⊕A⊃C ⊕B ⊃C ⇒D ↓n]] =⇒Γ⊕(A∨∗B)⊃C ⇒D ↓n+1 | ImpLL[intro]: [[Γ ⊕ A ⊕ B ⊃C ⇒ B ↓ n ; Γ ⊕ C ⇒ D ↓ m]] =⇒ Γ⊕ (A⊃B)⊃C ⇒ D ↓ n+m+1
constsweight ::form ⇒nat primrec
weight (At i) =1
weight (A⊃B) =1 +weight A+weight B weight (A∧∗ B) =2 +weight A+weight B weight (A∨∗ B) =3 +weight A+weight B weight (ff) =0
abbreviation
less-prod-nat (-<∗-[50,50]50) where p <∗q ≡(p,q) :less-than <∗lex∗>less-than
lemmanat-prod-induct [case-names less]: fixesx y ::nat assumesinduct-step:V x y.(V u v.(u,v)<∗(x,y) =⇒P u v) =⇒P x y showsP x y proof −
havewf (less-than<∗lex∗>less-than) byblast then show?thesis
proof (induct p ≡(x,y) arbitrary:x y) case(less p)
showP x y
proof (rule induct-step) fixu v
assume(u,v)<∗(x,y) withless showP u v bysimp qed
qed qed
lemmacontainMultiset: assumesA:# Γ shows∃ Γ0.Γ = Γ0⊕A proof−
fromassms haveΓ A ⊕A = Γby(auto simp add:multiset-eq-conv-count-eq) then show∃ Γ0.Γ = Γ0⊕A by(rule-tac x=Γ AinexI) (auto)
qed
lemmamidMultiset:
assumesΓ⊕A= Γ0⊕B and A6=B shows∃ Γ00.Γ = Γ00⊕B ∧Γ0= Γ00⊕A proof−
fromassms haveA:# Γ0 proof−
fromassms haveset-of (Γ⊕A) =set-of (Γ0⊕B)byauto then haveset-of Γ∪ {A}=set-of Γ0∪ {B}byauto then haveset-of Γ∪ {A} ⊆set-of Γ0∪ {B}bysimp then haveA∈set-of Γ0usingassms byauto thusA :# Γ0bysimp
qed
then have∃ Γ00.Γ0= Γ00⊕A usingcontainMultiset[whereΓ=Γ0]byauto then obtainΓ00whereeq1:Γ0= Γ00⊕A byblast
fromhΓ⊕A= Γ0⊕Bieq1 haveΓ⊕A = Γ00⊕A⊕B byauto
then haveΓ = Γ00⊕B by(auto simp add:multiset-eq-conv-count-eq) thus?thesisusingeq1 byblast
qed
lemmamidMultiset2:
assumesΓ⊕A⊕A= Γ0⊕B and A6=B shows∃ Γ00.Γ = Γ00⊕B ∧Γ0= Γ00⊕A⊕A proof−
fromassms have∃ Γ1.Γ⊕A= Γ1 ⊕B ∧Γ0= Γ1 ⊕AusingmidMultiset[whereΓ=Γ⊕A] byauto
then obtainΓ1 whereeq1: Γ⊕A= Γ1 ⊕B andeq2: Γ0= Γ1 ⊕A byblast
fromeq1 have ∃ Γ2.Γ = Γ2 ⊕B ∧Γ1 = Γ2 ⊕AusinghA6=Biand midMultiset byauto
then obtainΓ2 whereeq3: Γ = Γ2 ⊕B andeq4: Γ1 = Γ2 ⊕Abyblast fromeq2 and eq4 have Γ0= Γ2 ⊕A⊕Abysimp
then show∃ Γ00.Γ = Γ00⊕B∧Γ0= Γ00⊕A⊕Ausingeq3 by(rule-tac x=Γ2 inexI) (auto) qed
lemmadpWeak: fixesΓ ::form multiset assumesa: Γ⇒C ↓n showsΓ⊕A⇒C ↓n usinga
proof (induct ΓC n) case(Ax i Γ)
then have At i :# Γbysimp-all
then showΓ⊕A⇒At i↓0 using provable.Ax byauto next
case(LBot ΓC)
then have ff :# Γbysimp-all
then showΓ⊕A⇒C ↓0 usingprovable.LBot byauto next
case(ConjRΓC n D m)
then haveΓ⊕A⇒C∧∗D ↓n+m+1 usingprovable.ConjR[whereΓ=Γ⊕A]byauto then show?case byblast
next
case(DisjR1 ΓC n D)
then haveΓ⊕A⇒C∨∗D ↓n+1 using provable.DisjR1[whereΓ=Γ⊕A]byauto then show?case byblast
next
case(DisjR2 ΓD n C)
then haveΓ⊕A⇒C∨∗D ↓n+1 using provable.DisjR2[whereΓ=Γ⊕A]byauto then show?case byblast
next
case(ImpRΓC D m)
then haveΓ⊕C ⊕A⇒D ↓m byauto
then showΓ⊕A⇒C ⊃D ↓m+1 using provable.ImpR by(auto simp add:union-ac) next
case(ConjLΓC D E n)
then haveΓ⊕C∧∗D ⊕A⇒E ↓n+1 using provable.ConjL[whereΓ=Γ⊕AandA=C and B=D]by(auto simp add:union-ac)
then show?case byblast next
case(DisjLΓC E n D m)
then have Γ⊕ C∨∗D ⊕A ⇒ E ↓ n+m+1 using provable.DisjL[whereΓ=Γ⊕Aand A=C andB=D]by(auto simp add:union-ac)
then show?case byblast next
case(ImpL0 Γi B C n)
then showΓ⊕At i ⊕(At i ⊃B) ⊕A ⇒C ↓n+1
using provable.ImpL0[whereC=C and B=B and Γ=Γ⊕A and i=i and n=n] by (auto simp add:union-ac)
next
case(ImpLC ΓC D B E n)
then haveΓ⊕C⊃(D⊃B)⊕A⇒E ↓n bysimp then showΓ⊕(C∧∗D)⊃B ⊕A ⇒E ↓n+1
usingprovable.ImpLC[whereΓ=Γ⊕AandA=C and B=D andC=B andD=E andn=n] by(auto simp add:union-ac)
next
case(ImpLD ΓC B D E n)
then haveΓ⊕C⊃B ⊕D⊃B ⊕A⇒E ↓n bysimp then showΓ⊕(C∨∗D)⊃B ⊕A ⇒E ↓n+1
usingprovable.ImpLD[whereΓ=Γ⊕AandA=C andB=D andC=B andD=E andn=n] by(auto simp add:union-ac)
next
case(ImpLLΓC D B n E m)
then haveΓ⊕C ⊕D⊃B ⊕A⇒D ↓nand Γ⊕B ⊕A⇒E ↓m byauto then showΓ⊕(C⊃D)⊃B ⊕A⇒E ↓n+m+1
usingprovable.ImpLL[whereΓ=Γ⊕Aand A=C andB=D and C=B and D=E and n=n andm=m]by(auto simp add:union-ac)
qed lemmadpWeak0: assumesΓ⇒C ↓n showsΓ + Γ0⇒C ↓n usingassms proof (induct Γ0) caseempty
then show?case byauto next
case(add Γ0x)
then haveΓ + Γ0⇒C ↓nbyauto
then have Γ + Γ0 ⊕ x ⇒ C ↓ n using dpWeak[where Γ=Γ+Γ0 and A=x] by (auto simp only:union-ac)
then show?case byblast qed
lemmainversionConjL: assumesΓ⊕A∧∗B ⇒C ↓n
shows∃ j.j≤n ∧Γ⊕A⊕B ⇒C ↓j usingassms
case(Ax i Γ0)
then haveAt i :# Γbyauto
then haveΓ⊕A⊕B ⇒At i ↓0 byauto then show?case byblast
next
case(LBot Γ0C)
then haveff :# Γbyauto
then haveΓ⊕A⊕B ⇒C ↓0 byauto then show?case byblast
next
case(ImpRΓ0E F k)
then haveΓ0⊕E = Γ⊕A∧∗B ⊕E byauto
then have ∃ j.j≤k ∧ Γ⊕ A⊕ B ⊕ E ⇒ F ↓j using prems(3)[whereΓ=Γ⊕E]by (auto simp add:union-ac)
then obtainj wherec1:j≤k
andc2: Γ⊕A⊕B ⊕E ⇒F ↓j byauto
from c2 have Γ⊕ A⊕ B ⇒E⊃F ↓ j+1 using provable.ImpR[where Γ=Γ⊕ A ⊕B and A=E andB=F]byauto
then show?case usingc1 byauto next
case(ConjRΓ0E k F l)
then have∃j≤k.Γ⊕A⊕B ⇒E ↓j and∃j≤l.Γ⊕A⊕ B ⇒F ↓j byauto then obtainj1 j2 wherec1:j1 ≤k
andc2: Γ ⊕A ⊕B ⇒E ↓j1 andc3:j2 ≤l
andc4: Γ ⊕A ⊕B ⇒F ↓j2 byauto
then show ?case using provable.ConjR[whereΓ=Γ⊕A⊕B and n=j1 and m=j2 and A=E andB=F]
apply(rule-tac x=j1+j2+1 inexI)byauto next
case(DisjR1 Γ0E n F)
then have∃j≤n.Γ⊕A⊕B ⇒E ↓j byauto
then obtainj whereeq:j≤nand Γ⊕A⊕B ⇒E ↓j byblast then haveΓ⊕A⊕B ⇒E∨∗F ↓j+1 usingprovable.DisjR1 byauto then show?case usingeq byauto
next
case(DisjR2 Γ0F n E)
then have∃j≤n.Γ⊕A⊕B ⇒F ↓j byauto
then obtainj whereeq:j≤nand Γ⊕A⊕B ⇒F ↓j byblast then haveΓ⊕A⊕B ⇒E∨∗F ↓j+1 usingprovable.DisjR2 byauto then show?case usingeq byauto
next
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∧∗B
and eq2: Γ00 = Γ1 ⊕E∨∗F using midMultiset[whereΓ=Γ0and Γ0=Γ00and A=E∨∗F andB=A∧∗B]byauto
fromeq1 prems(3)[whereΓ=Γ1⊕E]have∃ j≤n.Γ1 ⊕E ⊕A ⊕B ⇒C ↓j by (auto simp add:union-ac)
moreover
fromeq1 prems(5)[whereΓ=Γ1⊕F]have∃ k≤m.Γ1 ⊕F ⊕A⊕B ⇒C ↓k by(auto simp add:union-ac)
ultimately
obtainj k wherea:j≤n ∧k≤m
andb: Γ1 ⊕E ⊕A⊕B ⇒C ↓j
andc: Γ1 ⊕F ⊕A⊕B ⇒C ↓k byblast
fromb chaveΓ1 ⊕E∨∗F ⊕A⊕B ⇒C ↓j+k+1 usingprovable.DisjL[whereΓ=Γ1⊕A⊕B andA=E and B=F]
by(auto simp add:union-ac)
then show?case usinga eq2 apply(rule-tac x=j+k+1 inexI)byauto next
case(ImpL0 Γ0i E C n Γ00)
fromprems obtainΓ1 whereeq10: Γ0⊕At i = Γ1 ⊕A∧∗B
andeq20: Γ00= Γ1 ⊕At i ⊃E usingmidMultiset[whereΓ=Γ0⊕At i and Γ0=Γ00andA=At i ⊃E andB=A∧∗B]
byauto
fromeq10obtainΓ2 whereeq1: Γ0= Γ2 ⊕A∧∗B
andeq200: Γ1 = Γ2 ⊕At i usingmidMultiset[whereΓ=Γ0and Γ0=Γ1 and A=At i andB=A∧∗B]
byauto
fromeq200eq20have eq2: Γ00= Γ2 ⊕At i ⊕At i ⊃E bysimp
fromeq1 have∃ j.j≤n∧Γ2 ⊕At i⊕E ⊕A⊕B⇒C ↓j usingprems(3)[whereΓ=Γ2⊕At i⊕E]by(auto simp add:union-ac)
then obtainj whereb1:j≤n
andb2: Γ2⊕A⊕B ⊕At i ⊕E ⇒C ↓j by(auto simp add:union-ac) fromb2 haveΓ2 ⊕A⊕B ⊕At i ⊕At i ⊃E ⇒C ↓j+1
usingprovable.ImpL0[whereΓ=Γ2⊕A⊕Bandi=i andB=E andC=C andn=j]by(auto simp add:union-ac)
then haveΓ00⊕A⊕B ⇒C ↓j+1 usingeq2 by(auto simp add:union-ac) then show?case usingb1 by(rule-tac x=j+1 inexI) (auto)
next
case(ImpLC Γ0D E C G n Γ00)
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∧∗B
and eq2: Γ00= Γ1 ⊕(D∧∗E)⊃C using midMultiset[whereΓ=Γ0and Γ0=Γ00 andA=(D∧∗E)⊃C and B=A∧∗B]
byauto
by(auto simp only:union-ac) then obtainj whereb1:j≤n
andb2: Γ1 ⊕D ⊃(E⊃C)⊕A⊕B ⇒G ↓j byblast
fromb2 haveΓ1⊕(D∧∗E)⊃C⊕A⊕B⇒G↓j+1usingprovable.ImpLC[whereΓ=Γ1⊕A⊕B andA=D andB=E andC=C andD=Gand n=j]
by(auto simp add:union-ac)
then haveΓ00⊕A⊕B ⇒G ↓j+1 usingeq2 bysimp then show?case usingb1 by(rule-tac x=j+1 inexI) (auto) next
case(ImpLD Γ0D C E G n Γ00)
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∧∗B
and eq2: Γ00= Γ1 ⊕(D∨∗E)⊃C using midMultiset[whereΓ=Γ0and Γ0=Γ00 andA=(D∨∗E)⊃C and B=A∧∗B]
byauto
from eq1 have ∃ j≤n. Γ1 ⊕ D⊃C ⊕ E⊃C ⊕ A ⊕ B ⇒ G ↓ j using prems(3)[where Γ=Γ1⊕D⊃C⊕E⊃C]by(auto simp add:union-ac)
then obtainj whereb1:j≤n
andb2: Γ1 ⊕D⊃C ⊕E⊃C ⊕A⊕B ⇒G ↓j byauto
fromb2 haveΓ1⊕(D∨∗E)⊃C⊕A⊕B⇒G↓j+1usingprovable.ImpLD[whereΓ=Γ1⊕A⊕B andA=D andC=C andB=E andD=Gand n=j]
by(auto simp add:union-ac)
then haveΓ00⊕A⊕B ⇒G ↓j+1 usingeq2 bysimp then show?case usingb1 by(rule-tac x=j+1 inexI) (auto) next
case(ImpLLΓ0D E C n G m Γ00)
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∧∗B
andeq2: Γ00= Γ1 ⊕(D⊃E)⊃C usingmidMultiset[whereΓ=Γ0andΓ0=Γ00and A=(D⊃E)⊃C andB=A∧∗B]byauto
fromeq1 have ∃ j≤n.Γ1 ⊕D ⊕E⊃C ⊕A⊕B ⇒E ↓j using prems(3)[whereΓ=Γ1 ⊕
D ⊕E⊃C]by(auto simp add:union-ac) then obtainj whereb1:j≤n
andb2: Γ1 ⊕D ⊕E⊃C ⊕A⊕B ⇒E ↓j byblast moreover
fromeq1 have ∃ k≤m. Γ1⊕C ⊕ A ⊕ B ⇒G ↓ k using prems(5)[whereΓ=Γ1 ⊕ C] by (auto simp add:union-ac)
then obtaink wherec1:k≤m
andc2: Γ1⊕C ⊕A⊕B ⇒G↓k byblast ultimately
have Γ1 ⊕(D⊃E)⊃C ⊕A ⊕B ⇒ G ↓j+k+1 using provable.ImpLL[whereΓ=Γ1⊕A⊕B andA=D andB=E andC=C andD=Gand n=j and m=k]
by(auto simp add:union-ac)
then haveΓ00⊕A⊕B ⇒G ↓j+k+1 using eq2 bysimp
next
case(ConjLΓ0E F C n Γ00)
haveE∧∗F =A∧∗B ∨E∧∗F 6=A∧∗B byblast moreover
{assumeE∧∗F =A∧∗B
then haveΓ0=Γ00∧ E=A∧ F=B usingprems byauto
then have ∃ j. j≤n+1 ∧Γ00⊕ A⊕B ⇒C ↓j using prems apply (rule-tac x=n in exI) byauto
}
moreover
{assumeE∧∗F 6=A∧∗B
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∧∗B
and eq2: Γ00= Γ1 ⊕ E∧∗F using midMultiset[whereΓ=Γ0and Γ0=Γ00and A=E∧∗F andB=A∧∗B]prems
byauto
from prems have ∃ j. j≤n ∧ Γ1 ⊕ A ⊕ B ⊕ E ⊕ F ⇒ C ↓ j using prems(3)[where Γ=Γ1⊕E⊕F]by(auto simp add:union-ac)
then obtainj whereb1:j≤n
andb2: Γ1 ⊕A ⊕B ⊕E ⊕F ⇒C ↓j by(auto simp add:union-ac)
fromb2 have Γ1 ⊕A ⊕B ⊕E∧∗F ⇒C ↓j+1 using provable.ConjL[whereΓ=Γ1⊕A⊕B] by(auto simp add:union-ac)
then have∃ j≤n+1.Γ00⊕A⊕B ⇒C ↓j usingeq2 b1 apply (rule-tac x=j+1 inexI) by (auto simp add:union-ac)
}
ultimately
show?case byblast qed
lemmainversionDisjL:
assumesΓ⊕A∨∗B ⇒C ↓n
shows∃ j k.j≤n ∧k≤n ∧Γ⊕A⇒C ↓j ∧Γ⊕B ⇒C ↓k usingassms
proof (induct Γ≡Γ⊕A∨∗B C n arbitrary: Γ) case(Ax i Γ0)
then haveAt i :# Γbyauto
then haveΓ⊕A⇒At i ↓0 and Γ⊕B ⇒At i ↓0 byauto then show?case byblast
next
case(LBot Γ0C)
then haveff :# Γbyauto
then haveΓ⊕A⇒C ↓0 andΓ⊕B ⇒C ↓0 byauto then show?case byblast
case(ConjRΓ0E k F l)
then have∃ j1 j2.j1≤k ∧j2≤k ∧Γ⊕A⇒E ↓j1 ∧Γ⊕B ⇒E ↓j2 and∃ j3 j4.j3≤l ∧j4≤l ∧Γ⊕A⇒F ↓j3 ∧Γ⊕B ⇒F ↓j4 byauto then obtainj1 j2 j3 j4 wherec:j1 ≤k ∧ j2≤k ∧j3≤l ∧j4≤l
and c1: Γ⊕A⇒E ↓j1 and c2: Γ⊕B ⇒E ↓j2 and c3: Γ⊕A⇒F ↓j3
and c4: Γ⊕B ⇒F ↓j4 byauto
fromc1 c3 haveΓ⊕A⇒E∧∗F ↓j1+j3+1 usingprovable.ConjR[whereΓ=Γ⊕A]byauto moreover
fromc2 c4 haveΓ⊕B ⇒E∧∗F ↓j2+j4+1 usingprovable.ConjR[whereΓ=Γ⊕B]byauto ultimately
show?case usingc apply(rule-tac x=j1+j3+1 inexI,rule-tac x=j2+j4+1 in exI)byauto next
case(DisjR1 Γ0E n F)
then have∃ j k.j≤n ∧k≤n ∧Γ⊕A⇒E ↓j ∧ Γ⊕B ⇒E ↓k byauto
then obtainj k whereeq:j≤n ∧k≤n andΓ⊕A⇒E ↓j ∧Γ⊕B ⇒E ↓k byblast then haveΓ⊕A⇒E∨∗F ↓j+1 ∧Γ⊕B ⇒E∨∗F ↓k+1 using provable.DisjR1 byauto then show?case usingeq byauto
next
case(DisjR2 Γ0F n E)
then have∃ j k.j≤n ∧k≤n ∧Γ⊕A⇒F ↓j ∧Γ⊕B ⇒F ↓k byauto
then obtainj k whereeq:j≤n ∧k≤n andΓ⊕A⇒F ↓j ∧Γ⊕B ⇒F ↓k byblast then haveΓ⊕A⇒E∨∗F ↓j+1 ∧Γ⊕B ⇒E∨∗F ↓k+1 using provable.DisjR2 byauto then show?case usingeq byauto
next
case(ImpRΓ0E F k)
then haveΓ0⊕E = Γ⊕A∨∗B ⊕E byauto
then have∃ j1 j2.j1≤k ∧j2≤k ∧Γ⊕A⊕E ⇒F ↓j1 ∧ Γ⊕B ⊕E ⇒F ↓j2 usingprems(3)[whereΓ=Γ⊕E]by(auto simp add:union-ac)
then obtainj1 j2 wherec1:j1≤k ∧j2≤k andc2: Γ ⊕A ⊕E ⇒F ↓j1
andc3: Γ ⊕B ⊕E ⇒F ↓j2 byauto
fromc2 haveΓ⊕A ⇒E⊃F ↓j1+1 using provable.ImpR[whereΓ=Γ ⊕Aand A=E and B=F]byauto
moreover
fromc3 have Γ⊕B ⇒E⊃F ↓j2+1 using provable.ImpR[whereΓ=Γ⊕B and A=E and B=F]byauto
ultimately
show?case usingc1 apply (rule-tac x=j1+1 in exI,rule-tac x=j2+1 inexI) byauto next
case(ConjLΓ0E F C n Γ00)
and eq2: Γ00= Γ1 ⊕E∧∗F using midMultiset[whereΓ=Γ0andA=E∧∗F and Γ0=Γ00andB=A∨∗B]byauto
fromeq1 prems(3)[whereΓ=Γ1⊕E⊕F]
have ∃ j k. j≤n ∧k≤n ∧ Γ1 ⊕E ⊕F ⊕A ⇒C ↓j ∧Γ1 ⊕ E ⊕F ⊕ B ⇒ C ↓k by (auto simp add:union-ac)
then obtainj k whereeq3:j≤n ∧k≤n
andc1: Γ1 ⊕E ⊕F ⊕A⇒C ↓j
andc2: Γ1 ⊕E ⊕F ⊕B ⇒C ↓k byblast
fromc1 haveΓ1 ⊕E∧∗F ⊕A⇒C ↓j+1 usingprovable.ConjL[whereΓ=Γ1⊕AandA=E andB=F]
by(auto simp add:union-ac) moreover
fromc2 haveΓ1 ⊕E∧∗F ⊕B ⇒C ↓k+1 usingprovable.ConjL[whereΓ=Γ1⊕B andA=E andB=F]
by(auto simp add:union-ac) ultimately
show?case usingeq2 eq3 apply(rule-tac x=j+1 inexI,rule-tac x=k+1 inexI)byauto next
case(ImpL0 Γ0i E C n Γ00)
fromprems obtainΓ1 whereeq10: Γ0⊕At i = Γ1 ⊕A∨∗B
andeq20: Γ00= Γ1 ⊕At i ⊃E usingmidMultiset[whereΓ=Γ0⊕At i and Γ0=Γ00andA=At i ⊃E andB=A∨∗B]
byauto
fromeq10obtainΓ2 whereeq1: Γ0= Γ2 ⊕A∨∗B
andeq200: Γ1 = Γ2 ⊕At i usingmidMultiset[whereΓ=Γ0and Γ0=Γ1 and A=At i andB=A∨∗B]
byauto
fromeq200eq20have eq2: Γ00= Γ2 ⊕At i ⊕At i ⊃E bysimp
fromeq1 have∃ j k.j≤n∧ k≤n ∧ Γ2 ⊕At i ⊕E ⊕A⇒C ↓j ∧Γ2 ⊕At i ⊕E ⊕B ⇒
C ↓k
usingprems(3)[whereΓ=Γ2⊕At i⊕E]by(auto simp add:union-ac) then obtainj k whereb1:j≤n ∧k≤n
andb2: Γ2 ⊕At i ⊕E ⊕A⇒C ↓j
andb3: Γ2 ⊕At i ⊕E ⊕B ⇒C ↓k byblast
fromb2 haveΓ2 ⊕At i ⊕At i ⊃E ⊕A⇒C ↓j+1 usingprovable.ImpL0[whereΓ=Γ2⊕A andi=i and B=E and C=C andn=j]
by(auto simp add:union-ac)
then haveΓ00⊕A⇒C ↓j+1 usingeq2 bysimp moreover
fromb3 haveΓ2 ⊕At i ⊕At i ⊃E ⊕B⇒C ↓k+1 usingprovable.ImpL0[whereΓ=Γ2⊕B andi=i and B=E and C=C andn=k]
by(auto simp add:union-ac)
ultimately
show?case usingb1 by(rule-tac x=j+1 inexI,rule-tac x=k+1 inexI) (auto) next
case(ImpLC Γ0D E C G n Γ00)
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∨∗B
and eq2: Γ00= Γ1 ⊕(D∧∗E)⊃C using midMultiset[whereΓ=Γ0and Γ0=Γ00 andA=(D∧∗E)⊃C and B=A∨∗B]
byauto
fromeq1 have ∃ j k.j≤n ∧k≤n ∧Γ1 ⊕D⊃(E⊃C)⊕A ⇒G ↓j ∧Γ1 ⊕D⊃(E⊃C) ⊕B
⇒G ↓k usingprems(3)[whereΓ=Γ1⊕D⊃(E⊃C)] by(auto simp only:union-ac)
then obtainj k whereb1:j≤n ∧k≤n
andb2: Γ1 ⊕D ⊃(E⊃C)⊕A⇒G↓j
andb3: Γ1 ⊕D ⊃(E⊃C)⊕B ⇒G ↓k byblast
fromb2 haveΓ1 ⊕(D∧∗E)⊃C ⊕A⇒G↓j+1 usingprovable.ImpLC[whereΓ=Γ1⊕Aand A=D andB=E andC=C and D=G andn=j]
by(auto simp add:union-ac)
then haveΓ00⊕A⇒G↓j+1 usingeq2 bysimp moreover
from b3 have Γ1 ⊕ (D∧∗E)⊃C ⊕ B ⇒ G ↓ k+1 using provable.ImpLC[where Γ=Γ1⊕B andA=D andB=E andC=C andD=Gand n=k]
by(auto simp add:union-ac)
then haveΓ00⊕B ⇒G ↓k+1 using eq2 bysimp ultimately
show?case usingb1 by(rule-tac x=j+1 inexI,rule-tac x=k+1 inexI) (auto) next
case(ImpLD Γ0D C E G n Γ00)
then obtainΓ1 whereeq1: Γ0= Γ1 ⊕A∨∗B
and eq2: Γ00= Γ1 ⊕(D∨∗E)⊃C using midMultiset[whereΓ=Γ0and Γ0=Γ00 andA=(D∨∗E)⊃C and B=A∨∗B]
byauto
fromeq1 have ∃ j k.j≤n∧k≤n∧Γ1 ⊕D⊃C ⊕E⊃C ⊕A⇒G↓j ∧Γ1 ⊕D⊃C ⊕E⊃C