theorem
Auto.Embedding.Lam.LamEquiv.not_true_equiv_false
{lval : LamValuation}
{lctx : Nat → LamSort}
:
theorem
Auto.Embedding.Lam.LamEquiv.not_false_equiv_true
{lval : LamValuation}
{lctx : Nat → LamSort}
:
theorem
Auto.Embedding.Lam.LamEquiv.prop_ne_equiv_eq_not
{lctx : Nat → LamSort}
{lhs rhs : LamTerm}
{lval : LamValuation}
(wfl : LamWF lval.toLamTyVal { lctx := lctx, rterm := lhs, rty := LamSort.base LamBaseSort.prop })
(wfr : LamWF lval.toLamTyVal { lctx := lctx, rterm := rhs, rty := LamSort.base LamBaseSort.prop })
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) (LamTerm.mkEq (LamSort.base LamBaseSort.prop) lhs rhs).mkNot
(LamTerm.mkEq (LamSort.base LamBaseSort.prop) lhs rhs.mkNot)
(a ≠ b) ↔ (a = (¬ b))
Equations
- One or more equations did not get rendered due to their size.
- t.prop_ne_equiv_eq_not? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_prop_ne_equiv_eq_not?
{t t' : LamTerm}
(heq : t.prop_ne_equiv_eq_not? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.prop_ne_equiv_eq_not?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.prop_ne_equiv_eq_not? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
theorem
Auto.Embedding.Lam.LamEquiv.equalize
{lctx : Nat → LamSort}
{t : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := LamSort.base LamBaseSort.prop })
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t.equalize
Equations
- One or more equations did not get rendered due to their size.
- Auto.Embedding.Lam.LamTerm.equalize? s t = none
Instances For
theorem
Auto.Embedding.Lam.LamEquiv.equalize?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := LamSort.base LamBaseSort.prop })
(heq : LamTerm.equalize? s t = some t')
:
(True = False) ↔ False
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_true_eq_false_equiv_false?
{t t' : LamTerm}
(heq : t.true_eq_false_equiv_false? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.true_eq_false_equiv_false?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.true_eq_false_equiv_false? = some t')
:
(False = True) ↔ False
Equations
- One or more equations did not get rendered due to their size.
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_false_eq_true_equiv_false?
{t t' : LamTerm}
(heq : t.false_eq_true_equiv_false? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.false_eq_true_equiv_false?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.false_eq_true_equiv_false? = some t')
:
(a = True) ↔ a
At first sight, it seems that this theorem will never be used
in clausification. However, it will, as we need to turn
(a = b) = True
into a = b
Equations
- One or more equations did not get rendered due to their size.
- t.eq_true_equiv? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_eq_true_equiv?
{t t' : LamTerm}
(heq : t.eq_true_equiv? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.eq_true_equiv?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.eq_true_equiv? = some t')
:
(a = False) ↔ (¬ a)
At first sight, it seems that this theorem will never be used
in clausification. However, it will, as we need to turn
(a = b) = False
into a ≠ b
Equations
- One or more equations did not get rendered due to their size.
- t.eq_false_equiv? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_eq_false_equiv?
{t t' : LamTerm}
(heq : t.eq_false_equiv? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.eq_false_equiv?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.eq_false_equiv? = some t')
:
(a ≠ True) ↔ (a = False)
Equations
- One or more equations did not get rendered due to their size.
- t.ne_true_equiv_eq_false? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_ne_true_equiv_eq_false?
{t t' : LamTerm}
(heq : t.ne_true_equiv_eq_false? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.ne_true_equiv_eq_false?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.ne_true_equiv_eq_false? = some t')
:
(a ≠ False) ↔ (a = True)
Equations
- One or more equations did not get rendered due to their size.
- t.ne_false_equiv_eq_true? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_ne_false_equiv_eq_true?
{t t' : LamTerm}
(heq : t.ne_false_equiv_eq_true? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.ne_false_equiv_eq_true?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.ne_false_equiv_eq_true? = some t')
:
((¬ a) = True) ↔ (a = False)
Equations
- One or more equations did not get rendered due to their size.
- t.not_eq_true_equiv_eq_false? = none
Instances For
def
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_eq_true_equiv_eq_false?
{t t' : LamTerm}
(heq : t.not_eq_true_equiv_eq_false? = some t')
:
Equations
- ⋯ = ⋯
Instances For
theorem
Auto.Embedding.Lam.LamEquiv.not_eq_true_equiv_eq_false?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_eq_true_equiv_eq_false? = some t')
:
((¬ a) = False) ↔ (a = True)
Equations
- One or more equations did not get rendered due to their size.
- t.not_eq_false_equiv_eq_true? = none
Instances For
def
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_eq_false_equiv_eq_true?
{t t' : LamTerm}
(heq : t.not_eq_false_equiv_eq_true? = some t')
:
Equations
- ⋯ = ⋯
Instances For
theorem
Auto.Embedding.Lam.LamEquiv.not_eq_false_equiv_eq_true?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_eq_false_equiv_eq_true? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_not_equiv
{lctx : Nat → LamSort}
{t : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := LamSort.base LamBaseSort.prop })
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t.mkNot.mkNot t
(¬¬a) ↔ a
Equations
- One or more equations did not get rendered due to their size.
- t.not_not_equiv? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_not_equiv?
{t t' : LamTerm}
(heq : t.not_not_equiv? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_not_equiv?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_not_equiv? = some t')
:
((¬ a) = b) ↔ (a = (¬ b))
Equations
- One or more equations did not get rendered due to their size.
- t.not_eq_equiv_eq_not? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_eq_equiv_eq_not?
{t t' : LamTerm}
(heq : t.not_eq_equiv_eq_not? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_eq_equiv_eq_not?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_eq_equiv_eq_not? = some t')
:
((¬ a) = (¬ b)) ↔ (a = b)
Equations
- One or more equations did not get rendered due to their size.
- t.not_eq_not_equiv_eq? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_eq_not_equiv_eq?
{t t' : LamTerm}
(heq : t.not_eq_not_equiv_eq? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_eq_not_equiv_eq?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_eq_not_equiv_eq? = some t')
:
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_propext?
{t t' : LamTerm}
(heq : t.propext? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.propext?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.propext? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
¬ (a ∧ b) ↔ ¬ a ∨ ¬ b
Equations
- One or more equations did not get rendered due to their size.
- t.not_and_equiv_not_or_not? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_and_equiv_not_or_not?
{t t' : LamTerm}
(heq : t.not_and_equiv_not_or_not? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_and_equiv_not_or_not?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_and_equiv_not_or_not? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
¬ (a ∨ b) ↔ ¬ a ∧ ¬ b
Equations
- One or more equations did not get rendered due to their size.
- t.not_or_equiv_not_and_not? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_or_equiv_not_and_not?
{t t' : LamTerm}
(heq : t.not_or_equiv_not_and_not? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_or_equiv_not_and_not?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_or_equiv_not_and_not? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_propeq?
{t t' : LamTerm}
(heq : t.propeq? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.propeq?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.propeq? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
(a → b) ↔ (¬ a ∨ b)
Equations
- One or more equations did not get rendered due to their size.
- t.imp_equiv_not_or? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_imp_equiv_not_or?
{t t' : LamTerm}
(heq : t.imp_equiv_not_or? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.imp_equiv_not_or?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.imp_equiv_not_or? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
(¬ (a → b)) ↔ (a ∧ ¬ b)
Equations
- One or more equations did not get rendered due to their size.
- t.not_imp_equiv_and_not? = none
Instances For
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_not_imp_equiv_and_not?
{t t' : LamTerm}
(heq : t.not_imp_equiv_and_not? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.not_imp_equiv_and_not?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.not_imp_equiv_and_not? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'
theorem
Auto.Embedding.Lam.LamTerm.maxEVarSucc_propne?
{t t' : LamTerm}
(heq : t.propne? = some t')
:
theorem
Auto.Embedding.Lam.LamEquiv.propne?
{lctx : Nat → LamSort}
{t : LamTerm}
{s : LamSort}
{t' : LamTerm}
{lval : LamValuation}
(wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s })
(heq : t.propne? = some t')
:
LamEquiv lval lctx (LamSort.base LamBaseSort.prop) t t'