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

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

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

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

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
T : Theory α
p : Formula α
U : Theory α
⊢ (∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj') →
    (𝓓)-Consistent (T, insert p U)
Tactic:
. intro h Γ Δ hΓ hΔ;
  simp_all;
  have : 𝓓 ⊬! Γ.conj' ⟶ p ⋎ (Δ.remove p).disj' := h 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;
  );
  by_contra hC;
  have : 𝓓 ⊢! Γ.conj' ⟶ p ⋎ (Δ.remove p).disj' := imp_trans! hC $ forthback_disj'_remove;
  contradiction;
State after:
no goals

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

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

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

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

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

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

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

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

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

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

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

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
T : Theory α
p : Formula α
U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'
Tactic:
have : 𝓓 ⊬! Γ.conj' ⟶ p ⋎ (Δ.remove p).disj' := h 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;
)
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
T : Theory α
p : Formula α
U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
this : 𝓓 ⊬! Γ.conj' ⟶ p ⋎ (List.remove p Δ).disj'
⊢ 𝓓 ⊬! Γ.conj' ⟶ Δ.disj'

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

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

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

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

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
T : Theory α
p : Formula α
U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
q : Formula α
hq : q ∈ List.remove p Δ
⊢ q ∈ U
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
T : Theory α
p : Formula α
U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
q : Formula α
hq : q ∈ List.remove p Δ
this : q = p ∨ q ∈ U
⊢ q ∈ U

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
𝓓 : DeductionParameter α
inst✝ : 𝓓.IncludeEFQ
T : Theory α
p : Formula α
U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
q : Formula α
hq : q ∈ List.remove p Δ
this : q = p ∨ q ∈ U
⊢ q ∈ U
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
T : Theory α
p : Formula α
U : Theory α
h : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
q : Formula α
hq : q ∈ List.remove p Δ
⊢ ?m.96897
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
T : Theory α
p : Formula α
U : Theory α
h✝ : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
q : Formula α
hq : q ∈ List.remove p Δ
h : q = p
⊢ q ∈ U
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
T : Theory α
p : Formula α
U : Theory α
h✝ : ∀ {Γ Δ : List (Formula α)}, (∀ p ∈ Γ, p ∈ T) → (∀ p ∈ Δ, p ∈ U) → 𝓓 ⊬! Γ.conj' ⟶ p ⋎ Δ.disj'
Γ Δ : List (Formula α)
hΓ : ∀ p ∈ Γ, p ∈ T
hΔ : ∀ p_1 ∈ Δ, p_1 = p ∨ p_1 ∈ U
q : Formula α
hq : q ∈ List.remove p Δ
h : q ∈ U
⊢ q ∈ U
Tactic:
assumption
State after:
no goals