Documentation

Auto.Embedding.LamPrep

Equations
  • One or more equations did not get rendered due to their size.
  • t.andLeft? = none
Instances For
    Equations
    • One or more equations did not get rendered due to their size.
    • t.andRight? = none
    Instances For
      theorem Auto.Embedding.Lam.eq_not_of_ne {a b : Prop} (h : a b) :
      a = ¬b
      theorem Auto.Embedding.Lam.ne_of_eq_not {a b : Prop} (h : a = ¬b) :
      a b
      theorem Auto.Embedding.Lam.equiv_eq {a b : Prop} :
      (a b) = (a = b)
      theorem Auto.Embedding.Lam.not_equiv_eq {a b : Prop} :
      (¬(a b)) = (a b)
      theorem Auto.Embedding.Lam.propeq_equiv {a b : Prop} :
      a = b (a ¬b) (¬a b)
      theorem Auto.Embedding.Lam.LamEquiv.prop_ne_equiv_eq_not {lctx : NatLamSort} {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 }) :

      (a ≠ b) ↔ (a = (¬ b))

      Equations
      Instances For
        theorem Auto.Embedding.Lam.LamEquiv.prop_ne_equiv_eq_not? {lctx : NatLamSort} {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') :
        theorem Auto.Embedding.Lam.LamEquiv.equalize {lctx : NatLamSort} {t : LamTerm} {lval : LamValuation} (wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := LamSort.base LamBaseSort.prop }) :
        Equations
        Instances For
          theorem Auto.Embedding.Lam.LamEquiv.equalize? {lctx : NatLamSort} {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.LamEquiv.true_eq_false_equiv_false? {lctx : NatLamSort} {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.LamEquiv.false_eq_true_equiv_false? {lctx : NatLamSort} {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
              Instances For
                theorem Auto.Embedding.Lam.LamEquiv.eq_true_equiv? {lctx : NatLamSort} {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
                Instances For
                  theorem Auto.Embedding.Lam.LamEquiv.eq_false_equiv? {lctx : NatLamSort} {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
                  Instances For
                    theorem Auto.Embedding.Lam.LamEquiv.ne_true_equiv_eq_false? {lctx : NatLamSort} {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
                    Instances For
                      theorem Auto.Embedding.Lam.LamEquiv.ne_false_equiv_eq_true? {lctx : NatLamSort} {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
                      Instances For
                        theorem Auto.Embedding.Lam.LamEquiv.not_eq_true_equiv_eq_false? {lctx : NatLamSort} {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
                        Instances For
                          theorem Auto.Embedding.Lam.LamEquiv.not_eq_false_equiv_eq_true? {lctx : NatLamSort} {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 : NatLamSort} {t : LamTerm} {lval : LamValuation} (wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := LamSort.base LamBaseSort.prop }) :

                          (¬¬a) ↔ a

                          Equations
                          Instances For
                            theorem Auto.Embedding.Lam.LamEquiv.not_not_equiv? {lctx : NatLamSort} {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
                            Instances For
                              theorem Auto.Embedding.Lam.LamEquiv.not_eq_equiv_eq_not? {lctx : NatLamSort} {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
                              Instances For
                                theorem Auto.Embedding.Lam.LamEquiv.not_eq_not_equiv_eq? {lctx : NatLamSort} {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') :

                                (a ↔ b) ↔ (a = b)

                                Equations
                                • One or more equations did not get rendered due to their size.
                                • t.propext? = none
                                Instances For
                                  theorem Auto.Embedding.Lam.LamEquiv.propext? {lctx : NatLamSort} {t : LamTerm} {s : LamSort} {t' : LamTerm} {lval : LamValuation} (wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s }) (heq : t.propext? = some t') :

                                  ¬ (a ∧ b) ↔ ¬ a ∨ ¬ b

                                  Equations
                                  Instances For
                                    theorem Auto.Embedding.Lam.LamEquiv.not_and_equiv_not_or_not? {lctx : NatLamSort} {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') :

                                    ¬ (a ∨ b) ↔ ¬ a ∧ ¬ b

                                    Equations
                                    Instances For
                                      theorem Auto.Embedding.Lam.LamEquiv.not_or_equiv_not_and_not? {lctx : NatLamSort} {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') :

                                      (a = b) ↔ (a ∨ ¬ b) ∧ (¬ a ∨ b)

                                      Equations
                                      • One or more equations did not get rendered due to their size.
                                      • t.propeq? = none
                                      Instances For
                                        theorem Auto.Embedding.Lam.LamEquiv.propeq? {lctx : NatLamSort} {t : LamTerm} {s : LamSort} {t' : LamTerm} {lval : LamValuation} (wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s }) (heq : t.propeq? = some t') :

                                        (a → b) ↔ (¬ a ∨ b)

                                        Equations
                                        Instances For
                                          theorem Auto.Embedding.Lam.LamEquiv.imp_equiv_not_or? {lctx : NatLamSort} {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') :

                                          (¬ (a → b)) ↔ (a ∧ ¬ b)

                                          Equations
                                          Instances For
                                            theorem Auto.Embedding.Lam.LamEquiv.not_imp_equiv_and_not? {lctx : NatLamSort} {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') :

                                            (a = b) ↔ (a ∨ b) ∧ (¬ a ∨ ¬ b)

                                            Equations
                                            • One or more equations did not get rendered due to their size.
                                            • t.propne? = none
                                            Instances For
                                              theorem Auto.Embedding.Lam.LamEquiv.propne? {lctx : NatLamSort} {t : LamTerm} {s : LamSort} {t' : LamTerm} {lval : LamValuation} (wft : LamWF lval.toLamTyVal { lctx := lctx, rterm := t, rty := s }) (heq : t.propne? = some t') :