Theorem: LO.Modal.Standard.MaximalParametricConsistentTheory.iff_mem_imp (Logic/Modal/Standard/Kripke/Completeness.lean)

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ p ⟶ q ∈ Ω.theory ↔ p ∈ Ω.theory → q ∈ Ω.theory
Tactic:
constructor
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ p ⟶ q ∈ Ω.theory → p ∈ Ω.theory → q ∈ Ω.theory

case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ (p ∈ Ω.theory → q ∈ Ω.theory) → p ⟶ q ∈ Ω.theory

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ p ⟶ q ∈ Ω.theory → p ∈ Ω.theory → q ∈ Ω.theory

case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ (p ∈ Ω.theory → q ∈ Ω.theory) → p ⟶ q ∈ Ω.theory
Tactic:
. intro hpq hp;
  replace dpq := membership_iff.mp hpq;
  replace dp  := membership_iff.mp hp;
  apply membership_iff.mpr;
  exact dpq ⨀ dp;
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ (p ∈ Ω.theory → q ∈ Ω.theory) → p ⟶ q ∈ Ω.theory

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ (p ∈ Ω.theory → q ∈ Ω.theory) → p ⟶ q ∈ Ω.theory
Tactic:
. intro h;
  replace h : p ∉ Ω.theory ∨ q ∈ Ω.theory := or_iff_not_imp_left.mpr (by simpa using h);
  cases h with
  | inl h =>
    apply membership_iff.mpr;
    exact efq_of_neg! $ membership_iff.mp $ iff_mem_neg.mpr h;
  | inr h =>
    apply membership_iff.mpr;
    exact imply₁! ⨀ (membership_iff.mp h)
State after:
no goals

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ p ⟶ q ∈ Ω.theory → p ∈ Ω.theory → q ∈ Ω.theory
Tactic:
intro hpq hp
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
⊢ q ∈ Ω.theory

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
⊢ q ∈ Ω.theory
Tactic:
replace dpq := membership_iff.mp hpq
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
dpq : Ω.theory *⊢[L]! p ⟶ q
⊢ q ∈ Ω.theory

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
dpq : Ω.theory *⊢[L]! p ⟶ q
⊢ q ∈ Ω.theory
Tactic:
replace dp  := membership_iff.mp hp
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
dpq : Ω.theory *⊢[L]! p ⟶ q
dp : Ω.theory *⊢[L]! p
⊢ q ∈ Ω.theory

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
dpq : Ω.theory *⊢[L]! p ⟶ q
dp : Ω.theory *⊢[L]! p
⊢ q ∈ Ω.theory
Tactic:
apply membership_iff.mpr
State after:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
dpq : Ω.theory *⊢[L]! p ⟶ q
dp : Ω.theory *⊢[L]! p
⊢ Ω.theory *⊢[L]! q

State before:
case mp
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
hpq : p ⟶ q ∈ Ω.theory
hp : p ∈ Ω.theory
dpq : Ω.theory *⊢[L]! p ⟶ q
dp : Ω.theory *⊢[L]! p
⊢ Ω.theory *⊢[L]! q
Tactic:
exact dpq ⨀ dp
State after:
no goals

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
⊢ (p ∈ Ω.theory → q ∈ Ω.theory) → p ⟶ q ∈ Ω.theory
Tactic:
intro h
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∈ Ω.theory → q ∈ Ω.theory
⊢ p ⟶ q ∈ Ω.theory

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∈ Ω.theory → q ∈ Ω.theory
⊢ p ⟶ q ∈ Ω.theory
Tactic:
replace h : p ∉ Ω.theory ∨ q ∈ Ω.theory := or_iff_not_imp_left.mpr (by simpa using h)
State after:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∉ Ω.theory ∨ q ∈ Ω.theory
⊢ p ⟶ q ∈ Ω.theory

State before:
case mpr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∉ Ω.theory ∨ q ∈ Ω.theory
⊢ p ⟶ q ∈ Ω.theory
Tactic:
cases h with
| inl h =>
  apply membership_iff.mpr;
  exact efq_of_neg! $ membership_iff.mp $ iff_mem_neg.mpr h;
| inr h =>
  apply membership_iff.mpr;
  exact imply₁! ⨀ (membership_iff.mp h)
State after:
no goals

State before:
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∈ Ω.theory → q ∈ Ω.theory
⊢ ¬p ∉ Ω.theory → q ∈ Ω.theory
Tactic:
simpa using h
State after:
no goals

State before:
case mpr.inl
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∉ Ω.theory
⊢ p ⟶ q ∈ Ω.theory
Tactic:
apply membership_iff.mpr
State after:
case mpr.inl
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∉ Ω.theory
⊢ Ω.theory *⊢[L]! p ⟶ q

State before:
case mpr.inl
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : p ∉ Ω.theory
⊢ Ω.theory *⊢[L]! p ⟶ q
Tactic:
exact efq_of_neg! $ membership_iff.mp $ iff_mem_neg.mpr h
State after:
no goals

State before:
case mpr.inr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : q ∈ Ω.theory
⊢ p ⟶ q ∈ Ω.theory
Tactic:
apply membership_iff.mpr
State after:
case mpr.inr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : q ∈ Ω.theory
⊢ Ω.theory *⊢[L]! p ⟶ q

State before:
case mpr.inr
α : Type u_1
inst✝² : DecidableEq α
inst✝¹ : Inhabited α
L : DeductionParameter α
inst✝ : L.Normal
Ω Ω₁ Ω₂ : MCT L
p q : Formula α
h : q ∈ Ω.theory
⊢ Ω.theory *⊢[L]! p ⟶ q
Tactic:
exact imply₁! ⨀ (membership_iff.mp h)
State after:
no goals