Theorem: LO.Propositional.Superintuitionistic.Tableau.iff_ParametricConsistent_insert₁ (Logic/Propositional/Superintuitionistic/Kripke/Completeness.lean)

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (𝓓)-Consistent (insert p T, U) ↔
    ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Tactic:
constructor
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (𝓓)-Consistent (insert p T, U) →
    ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'

case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj') →
    (𝓓)-Consistent (insert p T, U)

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (𝓓)-Consistent (insert p T, U) →
    ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'

case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj') →
    (𝓓)-Consistent (insert p T, U)
Tactic:
. intro h Γ Δ hΓ hΔ;
  by_contra hC;
  have : 𝓓 ⊬! (p :: Γ).conj' ⟶ Δ.disj' := h (by simp; intro q hq; right; exact hΓ q hq;) hΔ;
  have : 𝓓 ⊢! (p :: Γ).conj' ⟶ Δ.disj' := implyLeft_cons_conj'!.mpr hC;
  contradiction;
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj') →
    (𝓓)-Consistent (insert p T, U)

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj') →
    (𝓓)-Consistent (insert p T, U)
Tactic:
. intro h Γ Δ hΓ hΔ;
  simp_all only [Set.mem_insert_iff];
  have : 𝓓 ⊬! p ⋏ (Γ.remove p).conj' ⟶ Δ.disj' := h (by
    intro q hq;
    have := by simpa using hΓ q $ List.mem_of_mem_remove hq;
    cases this with
    | inl h => simpa [h] using List.mem_remove_iff.mp hq;
    | inr h => assumption;
  ) hΔ;
  by_contra hC;
  have : 𝓓 ⊢! p ⋏ (Γ.remove p).conj' ⟶ Δ.disj' := imp_trans! andComm! $ implyLeftRemoveConj' (p := p) hC;
  contradiction;
State after:
no goals

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (𝓓)-Consistent (insert p T, U) →
    ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Tactic:
intro h Γ Δ hΓ hΔ
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
⊢ 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
⊢ 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Tactic:
by_contra hC
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
⊢ False

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
⊢ False
Tactic:
have : 𝓓 ⊬! (p :: Γ).conj' ⟶ Δ.disj' := h (by simp; intro q hq; right; exact hΓ q hq;) hΔ
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
this : 𝓓 ⊬! (p :: Γ).conj' ⟶ Δ.disj'
⊢ False

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
this : 𝓓 ⊬! (p :: Γ).conj' ⟶ Δ.disj'
⊢ False
Tactic:
have : 𝓓 ⊢! (p :: Γ).conj' ⟶ Δ.disj' := implyLeft_cons_conj'!.mpr hC
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
this✝ : 𝓓 ⊬! (p :: Γ).conj' ⟶ Δ.disj'
this : 𝓓 ⊢! (p :: Γ).conj' ⟶ Δ.disj'
⊢ False

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
this✝ : 𝓓 ⊬! (p :: Γ).conj' ⟶ Δ.disj'
this : 𝓓 ⊢! (p :: Γ).conj' ⟶ Δ.disj'
⊢ False
Tactic:
contradiction
State after:
no goals

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
⊢ ∀ p_1 ∈ p :: Γ, p_1 ∈ (insert p T, U).1
Tactic:
simp
State after:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
⊢ ∀ a ∈ Γ, a = p ∨ a ∈ T

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
⊢ ∀ a ∈ Γ, a = p ∨ a ∈ T
Tactic:
intro q hq
State after:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
q : Formula α
hq : q ∈ Γ
⊢ q = p ∨ q ∈ T

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
q : Formula α
hq : q ∈ Γ
⊢ q = p ∨ q ∈ T
Tactic:
right
State after:
case h
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
q : Formula α
hq : q ∈ Γ
⊢ q ∈ T

State before:
case h
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : (𝓓)-Consistent (insert p T, U)
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
hC : 𝓓 ⊢! p ⋏ Γ.conj' ⟶ Δ.disj'
q : Formula α
hq : q ∈ Γ
⊢ q ∈ T
Tactic:
exact hΓ q hq
State after:
no goals

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
⊢ (∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj') →
    (𝓓)-Consistent (insert p T, U)
Tactic:
intro h Γ Δ hΓ hΔ
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 ∈ (insert p T, U).1
hΔ : ∀ p_1 ∈ Δ, p_1 ∈ (insert p T, U).2
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 ∈ (insert p T, U).1
hΔ : ∀ p_1 ∈ Δ, p_1 ∈ (insert p T, U).2
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'
Tactic:
simp_all only [Set.mem_insert_iff]
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'
Tactic:
have : 𝓓 ⊬! p ⋏ (Γ.remove p).conj' ⟶ Δ.disj' := h (by
  intro q hq;
  have := by simpa using hΓ q $ List.mem_of_mem_remove hq;
  cases this with
  | inl h => simpa [h] using List.mem_remove_iff.mp hq;
  | inr h => assumption;
) hΔ
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
this : 𝓓 ⊬! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
this : 𝓓 ⊬! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'
Tactic:
by_contra hC
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
this : 𝓓 ⊬! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
hC : 𝓓 ⊢! Γ.conj' ⟶ Δ.disj'
⊢ False

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
this : 𝓓 ⊬! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
hC : 𝓓 ⊢! Γ.conj' ⟶ Δ.disj'
⊢ False
Tactic:
have : 𝓓 ⊢! p ⋏ (Γ.remove p).conj' ⟶ Δ.disj' := imp_trans! andComm! $ implyLeftRemoveConj' (p := p) hC
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
this✝ : 𝓓 ⊬! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
hC : 𝓓 ⊢! Γ.conj' ⟶ Δ.disj'
this : 𝓓 ⊢! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
⊢ False

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
this✝ : 𝓓 ⊬! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
hC : 𝓓 ⊢! Γ.conj' ⟶ Δ.disj'
this : 𝓓 ⊢! p ⋏ (List.remove p Γ).conj' ⟶ Δ.disj'
⊢ False
Tactic:
contradiction
State after:
no goals

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
⊢ ∀ p_1 ∈ List.remove p Γ, p_1 ∈ T
Tactic:
intro q hq
State after:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
⊢ q ∈ T

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
⊢ q ∈ T
Tactic:
have := by simpa using hΓ q $ List.mem_of_mem_remove hq;
State after:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
this : q = p ∨ q ∈ T
⊢ q ∈ T

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
this : q = p ∨ q ∈ T
⊢ q ∈ T
Tactic:
cases this with
| inl h => simpa [h] using List.mem_remove_iff.mp hq;
| inr h => assumption;
State after:
no goals

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
⊢ ?m.14396
Tactic:
simpa using hΓ q $ List.mem_of_mem_remove hq
State after:
no goals

State before:
case inl
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h✝ : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
h : q = p
⊢ q ∈ T
Tactic:
simpa [h] using List.mem_remove_iff.mp hq
State after:
no goals

State before:
case inr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
p : Formula α
T U : Theory α
h✝ : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! p ⋏ Γ.conj' ⟶ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p_1 ∈ Γ, p_1 = p ∨ p_1 ∈ T
hΔ : ∀ p ∈ Δ, p ∈ U
q : Formula α
hq : q ∈ List.remove p Γ
h : q ∈ T
⊢ q ∈ T
Tactic:
assumption
State after:
no goals