Theory quantHeuristics

Parents

Contents

Type operators

(none)

Constants

Definitions

GUESS_EXISTS_GAP_defGUESS_EXISTS_POINT_defGUESS_EXISTS_defGUESS_FORALL_GAP_defGUESS_FORALL_POINT_defGUESS_FORALL_defIS_REMOVABLE_QUANT_FUN_defSIMPLE_GUESS_EXISTS_defSIMPLE_GUESS_FORALL_def

Theorems

CONJ_NOT_OR_THMCONS_EQ_REWRITEDISJ_IMP_INTROEXISTS_NOT_FORALL_THMFST_PAIR_EQFST_PAIR_EQ_SYMGUESSES_NEG_DUALITYGUESSES_NEG_REWRITEGUESSES_UEXISTS_THM1GUESSES_UEXISTS_THM2GUESSES_UEXISTS_THM3GUESSES_UEXISTS_THM4GUESSES_WEAKEN_THMGUESS_EXISTS_FORALL_REWRITESGUESS_EXISTS_POINT_THMGUESS_EXISTS_THMGUESS_FORALL_POINT_THMGUESS_FORALL_THMGUESS_POINT_THMGUESS_REWRITESGUESS_RULES_BOOLGUESS_RULES_CONDGUESS_RULES_CONJGUESS_RULES_CONSTANT_EXISTSGUESS_RULES_CONSTANT_FORALLGUESS_RULES_DISJGUESS_RULES_ELIM_UNITGUESS_RULES_EQUATION_EXISTS_GAPGUESS_RULES_EQUATION_EXISTS_POINTGUESS_RULES_EQUATION_FORALL_POINTGUESS_RULES_EQUIVGUESS_RULES_EXISTSGUESS_RULES_EXISTS_UNIQUEGUESS_RULES_EXISTS___NEW_FVGUESS_RULES_EXISTS___NEW_FV_1GUESS_RULES_FORALLGUESS_RULES_FORALL___NEW_FVGUESS_RULES_FORALL___NEW_FV_1GUESS_RULES_IMPGUESS_RULES_NEGGUESS_RULES_ONE_CASE___EXISTS_GAPGUESS_RULES_ONE_CASE___FORALL_GAPGUESS_RULES_STRENGTHEN_EXISTS_POINTGUESS_RULES_STRENGTHEN_FORALL_GAPGUESS_RULES_TRIVIAL_EXISTS_POINTGUESS_RULES_TRIVIAL_FORALL_POINTGUESS_RULES_TWO_CASESGUESS_RULES_WEAKEN_EXISTS_GAPGUESS_RULES_WEAKEN_FORALL_POINTHD_TL_EQ_1HD_TL_EQ_NIL_1_bothwaysIMP_NEG_CONTRAINL_NEQ_ELIMINR_NEQ_ELIMISL_existsISR_existsIS_REMOVABLE_QUANT_FUN___EXISTS_THMIS_REMOVABLE_QUANT_FUN___FORALL_THMIS_SOME_EQ_NOT_NONELEFT_IMP_AND_INTROLEFT_IMP_OR_INTROLENGTH_LE_NUMLENGTH_LE_PLUSLENGTH_NIL_SYMLENGTH_TO_EXISTS_CONSLIST_LENGTH_0LIST_LENGTH_1LIST_LENGTH_COMPARE_1LIST_LENGTH_COMPARE_SUCMOVE_EXISTS_IMP_THMPAIR_EQ_EXPANDPAIR_EQ_SIMPLE_EXPANDRIGHT_IMP_AND_INTRORIGHT_IMP_OR_INTROSIMPLE_GUESS_EXISTS_ALT_DEFSIMPLE_GUESS_EXISTS_AND_1SIMPLE_GUESS_EXISTS_AND_2SIMPLE_GUESS_EXISTS_EQ_1SIMPLE_GUESS_EXISTS_EQ_2SIMPLE_GUESS_EXISTS_EQ_FUNSIMPLE_GUESS_EXISTS_EQ_TSIMPLE_GUESS_EXISTS_EXISTSSIMPLE_GUESS_EXISTS_FORALLSIMPLE_GUESS_EXISTS_NEGSIMPLE_GUESS_EXISTS_THMSIMPLE_GUESS_FORALL_ALT_DEFSIMPLE_GUESS_FORALL_EXISTSSIMPLE_GUESS_FORALL_FORALLSIMPLE_GUESS_FORALL_IMP_1SIMPLE_GUESS_FORALL_IMP_2SIMPLE_GUESS_FORALL_NEGSIMPLE_GUESS_FORALL_OR_1SIMPLE_GUESS_FORALL_OR_2SIMPLE_GUESS_FORALL_THMSIMPLE_GUESS_SELECT_THMSIMPLE_GUESS_SOME_THMSIMPLE_GUESS_UEXISTS_THMSND_PAIR_EQSND_PAIR_EQ_SYMSOME_THE_EQSOME_THE_EQ_SYMUNWIND_EXISTS_THM

Definitions

⊢ ∀i P. GUESS_EXISTS_GAP i P ⇔ ∀v. P v ⇒ ∃fv. v = i fv
⊢ ∀i P. GUESS_EXISTS_POINT i P ⇔ ∀fv. P (i fv)
⊢ ∀i P. GUESS_EXISTS i P ⇔ ((∃v. P v) ⇔ ∃fv. P (i fv))
⊢ ∀i P. GUESS_FORALL_GAP i P ⇔ ∀v. ¬P v ⇒ ∃fv. v = i fv
⊢ ∀i P. GUESS_FORALL_POINT i P ⇔ ∀fv. ¬P (i fv)
⊢ ∀i P. GUESS_FORALL i P ⇔ ((∀v. P v) ⇔ ∀fv. P (i fv))
⊢ ∀f. IS_REMOVABLE_QUANT_FUN f ⇔ ∀v. ∃x. f x = v
⊢ ∀v i P. SIMPLE_GUESS_EXISTS v i P ⇔ P ⇒ (v = i)
⊢ ∀v i P. SIMPLE_GUESS_FORALL v i P ⇔ ¬P ⇒ (v = i)

Theorems

⊢ ∀A B. A ∧ B ⇔ ¬(¬A ∨ ¬B)
⊢ ((x::xs = ys) ⇔ 1 ≤ LENGTH ys ∧ (x = HD ys) ∧ (xs = TL ys)) ∧
  ((ys = x::xs) ⇔ 1 ≤ LENGTH ys ∧ (HD ys = x) ∧ (TL ys = xs)) ∧
  (0 < n ⇒ (n ≤ LENGTH (TL ys) ⇔ n + 1 ≤ LENGTH ys)) ∧
  (n ≤ m ⇒ (n ≤ rhs ∧ m ≤ rhs ⇔ m ≤ rhs)) ∧
  (([] = TL ys) ⇔ LENGTH ys ≤ 1) ∧ ((TL ys = []) ⇔ LENGTH ys ≤ 1) ∧
  (LENGTH (TL ys) ≤ n ⇔ LENGTH ys ≤ n + 1) ∧ (m ≤ n ∧ n ≤ m ⇔ (m = n)) ∧
  (m ≤ LENGTH ys ∧ (n = LENGTH ys) ⇔ m ≤ n ∧ (n = LENGTH ys))
⊢ (∀x. P x ∨ Q x) ⇒ (¬P y ⇒ Q y) ∧ (¬Q y ⇒ P y)
⊢ ∀P. (∃x. P x) ⇔ ¬∀x. ¬P x
⊢ ∀p p2. ((FST p,p2) = p) ⇔ (p2 = SND p)
⊢ ∀p p2. (p = (FST p,p2)) ⇔ (SND p = p2)
⊢ (GUESS_EXISTS i ($¬ ∘ P) ⇔ GUESS_FORALL i P) ∧
  (GUESS_FORALL i ($¬ ∘ P) ⇔ GUESS_EXISTS i P) ∧
  (GUESS_EXISTS_GAP i ($¬ ∘ P) ⇔ GUESS_FORALL_GAP i P) ∧
  (GUESS_FORALL_GAP i ($¬ ∘ P) ⇔ GUESS_EXISTS_GAP i P) ∧
  (GUESS_EXISTS_POINT i ($¬ ∘ P) ⇔ GUESS_FORALL_POINT i P) ∧
  (GUESS_FORALL_POINT i ($¬ ∘ P) ⇔ GUESS_EXISTS_POINT i P)
⊢ (GUESS_EXISTS i (λx. ¬P x) ⇔ GUESS_FORALL i (λx. P x)) ∧
  (GUESS_FORALL i (λx. ¬P x) ⇔ GUESS_EXISTS i (λx. P x)) ∧
  (GUESS_EXISTS_GAP i (λx. ¬P x) ⇔ GUESS_FORALL_GAP i (λx. P x)) ∧
  (GUESS_FORALL_GAP i (λx. ¬P x) ⇔ GUESS_EXISTS_GAP i (λx. P x)) ∧
  (GUESS_EXISTS_POINT i (λx. ¬P x) ⇔ GUESS_FORALL_POINT i (λx. P x)) ∧
  (GUESS_FORALL_POINT i (λx. ¬P x) ⇔ GUESS_EXISTS_POINT i (λx. P x))
⊢ ∀i P. GUESS_EXISTS (λx. i) P ⇒ ($?! P ⇔ P i ∧ ∀v. P v ⇒ (v = i))
⊢ ∀i P. GUESS_EXISTS_GAP (λx. i) P ⇒ ($?! P ⇔ P i)
⊢ ∀i P. GUESS_EXISTS_POINT (λx. i) P ⇒ ($?! P ⇔ ∀v. P v ⇒ (v = i))
⊢ ∀i P.
    GUESS_EXISTS_POINT (λx. i) P ⇒ GUESS_EXISTS_GAP (λx. i) P ⇒ ($?! P ⇔ T)
⊢ (GUESS_FORALL_GAP i P ⇒ GUESS_FORALL i P) ∧
  (GUESS_FORALL_POINT i P ⇒ GUESS_FORALL i P) ∧
  (GUESS_EXISTS_POINT i P ⇒ GUESS_EXISTS i P) ∧
  (GUESS_EXISTS_GAP i P ⇒ GUESS_EXISTS i P)
⊢ (GUESS_EXISTS i P ⇔ ∀v. P v ⇒ ∃fv. P (i fv)) ∧
  (GUESS_FORALL i P ⇔ ∀v. ¬P v ⇒ ∃fv. ¬P (i fv))
⊢ ∀i P. GUESS_EXISTS_POINT i P ⇒ ($? P ⇔ T)
⊢ ∀i P. GUESS_EXISTS i P ⇒ ($? P ⇔ ∃fv. P (i fv))
⊢ ∀i P. GUESS_FORALL_POINT i P ⇒ ($! P ⇔ F)
⊢ ∀i P. GUESS_FORALL i P ⇒ ($! P ⇔ ∀fv. P (i fv))
⊢ (GUESS_EXISTS_POINT i P ⇒ ((∃v. P v) ⇔ T)) ∧
  (GUESS_FORALL_POINT i P ⇒ ((∀v. P v) ⇔ F))
⊢ ((GUESS_EXISTS i P ⇔ ∀v. P v ⇒ ∃fv. P (i fv)) ∧
   (GUESS_FORALL i P ⇔ ∀v. ¬P v ⇒ ∃fv. ¬P (i fv))) ∧
  (∀i P. GUESS_EXISTS_POINT i P ⇔ ∀fv. P (i fv)) ∧
  (∀i P. GUESS_FORALL_POINT i P ⇔ ∀fv. ¬P (i fv)) ∧
  (∀i P. GUESS_EXISTS_GAP i P ⇔ ∀v. P v ⇒ ∃fv. v = i fv) ∧
  ∀i P. GUESS_FORALL_GAP i P ⇔ ∀v. ¬P v ⇒ ∃fv. v = i fv
⊢ GUESS_EXISTS_POINT (λARB. T) (λx. x) ∧
  GUESS_FORALL_POINT (λARB. F) (λx. x) ∧
  GUESS_EXISTS_GAP (λARB. T) (λx. x) ∧ GUESS_FORALL_GAP (λARB. F) (λx. x)
⊢ (GUESS_FORALL_POINT i (λx. P x) ∧ GUESS_FORALL_POINT i (λx. Q x) ⇒
   GUESS_FORALL_POINT i (λx. if b x then P x else Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. P x) ∧ GUESS_EXISTS_POINT i (λx. Q x) ⇒
   GUESS_EXISTS_POINT i (λx. if b x then P x else Q x)) ∧
  (GUESS_EXISTS i (λx. P x) ∧ GUESS_EXISTS i (λx. Q x) ⇒
   GUESS_EXISTS i (λx. if bc then P x else Q x)) ∧
  (GUESS_FORALL i (λx. P x) ∧ GUESS_FORALL i (λx. Q x) ⇒
   GUESS_FORALL i (λx. if bc then P x else Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. P x) ∧ GUESS_EXISTS_GAP i (λx. Q x) ⇒
   GUESS_EXISTS_GAP i (λx. if b x then P x else Q x)) ∧
  (GUESS_FORALL_GAP i (λx. P x) ∧ GUESS_FORALL_GAP i (λx. Q x) ⇒
   GUESS_FORALL_GAP i (λx. if b x then P x else Q x)) ∧
  (GUESS_FORALL_POINT i (λx. b x) ∧ GUESS_FORALL_POINT i (λx. Q x) ⇒
   GUESS_FORALL_POINT i (λx. if b x then P x else Q x)) ∧
  (GUESS_FORALL_POINT i (λx. b x) ∧ GUESS_EXISTS_POINT i (λx. Q x) ⇒
   GUESS_EXISTS_POINT i (λx. if b x then P x else Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. b x) ∧ GUESS_FORALL_POINT i (λx. P x) ⇒
   GUESS_FORALL_POINT i (λx. if b x then P x else Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. b x) ∧ GUESS_EXISTS_POINT i (λx. P x) ⇒
   GUESS_EXISTS_POINT i (λx. if b x then P x else Q x)) ∧
  (GUESS_FORALL_GAP i (λx. b x) ∧ GUESS_EXISTS_GAP i (λx. P x) ⇒
   GUESS_EXISTS_GAP i (λx. if b x then P x else Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. b x) ∧ GUESS_EXISTS_GAP i (λx. Q x) ⇒
   GUESS_EXISTS_GAP i (λx. if b x then P x else Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. b x) ∧ GUESS_FORALL_GAP i (λx. Q x) ⇒
   GUESS_FORALL_GAP i (λx. if b x then P x else Q x)) ∧
  (GUESS_FORALL_GAP i (λx. b x) ∧ GUESS_FORALL_GAP i (λx. P x) ⇒
   GUESS_FORALL_GAP i (λx. if b x then P x else Q x))
⊢ (GUESS_FORALL_POINT i (λx. P x) ⇒ GUESS_FORALL_POINT i (λx. P x ∧ Q x)) ∧
  (GUESS_FORALL_POINT i (λx. Q x) ⇒ GUESS_FORALL_POINT i (λx. P x ∧ Q x)) ∧
  (GUESS_FORALL i (λx. P x) ∧ GUESS_FORALL i (λx. Q x) ⇒
   GUESS_FORALL i (λx. P x ∧ Q x)) ∧
  (GUESS_FORALL_GAP i (λx. P x) ∧ GUESS_FORALL_GAP i (λx. Q x) ⇒
   GUESS_FORALL_GAP i (λx. P x ∧ Q x)) ∧
  (GUESS_EXISTS (λxxx. iK) (λx. P x) ∧ GUESS_EXISTS (λxxx. iK) (λx. Q x) ⇒
   GUESS_EXISTS (λxxx. iK) (λx. P x ∧ Q x)) ∧
  (GUESS_EXISTS i (λx. P x) ⇒ GUESS_EXISTS i (λx. P x ∧ q)) ∧
  (GUESS_EXISTS i (λx. Q x) ⇒ GUESS_EXISTS i (λx. p ∧ Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. P x) ∧ GUESS_EXISTS_POINT i (λx. Q x) ⇒
   GUESS_EXISTS_POINT i (λx. P x ∧ Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. P x) ⇒ GUESS_EXISTS_GAP i (λx. P x ∧ Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. Q x) ⇒ GUESS_EXISTS_GAP i (λx. P x ∧ Q x))
⊢ GUESS_EXISTS i (λx. p) ⇔ T
⊢ GUESS_FORALL i (λx. p) ⇔ T
⊢ (GUESS_EXISTS_POINT i (λx. P x) ⇒ GUESS_EXISTS_POINT i (λx. P x ∨ Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. Q x) ⇒ GUESS_EXISTS_POINT i (λx. P x ∨ Q x)) ∧
  (GUESS_EXISTS i (λx. P x) ∧ GUESS_EXISTS i (λx. Q x) ⇒
   GUESS_EXISTS i (λx. P x ∨ Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. P x) ∧ GUESS_EXISTS_GAP i (λx. Q x) ⇒
   GUESS_EXISTS_GAP i (λx. P x ∨ Q x)) ∧
  (GUESS_FORALL (λxxx. iK) (λx. P x) ∧ GUESS_FORALL (λxxx. iK) (λx. Q x) ⇒
   GUESS_FORALL (λxxx. iK) (λx. P x ∨ Q x)) ∧
  (GUESS_FORALL i (λx. P x) ⇒ GUESS_FORALL i (λx. P x ∨ q)) ∧
  (GUESS_FORALL i (λx. Q x) ⇒ GUESS_FORALL i (λx. p ∨ Q x)) ∧
  (GUESS_FORALL_POINT i (λx. P x) ∧ GUESS_FORALL_POINT i (λx. Q x) ⇒
   GUESS_FORALL_POINT i (λx. P x ∨ Q x)) ∧
  (GUESS_FORALL_GAP i (λx. P x) ⇒ GUESS_FORALL_GAP i (λx. P x ∨ Q x)) ∧
  (GUESS_FORALL_GAP i (λx. Q x) ⇒ GUESS_FORALL_GAP i (λx. P x ∨ Q x))
⊢ (GUESS_FORALL_POINT i vt ⇔ GUESS_FORALL_POINT (λx. i (x,())) vt) ∧
  (GUESS_EXISTS_POINT i vt ⇔ GUESS_EXISTS_POINT (λx. i (x,())) vt) ∧
  (GUESS_EXISTS i vt ⇔ GUESS_EXISTS (λx. i (x,())) vt) ∧
  (GUESS_FORALL i vt ⇔ GUESS_FORALL (λx. i (x,())) vt) ∧
  (GUESS_EXISTS_GAP i vt ⇔ GUESS_EXISTS_GAP (λx. i (x,())) vt) ∧
  (GUESS_FORALL_GAP i vt ⇔ GUESS_FORALL_GAP (λx. i (x,())) vt)
⊢ ∀i. GUESS_EXISTS_GAP (λxxx. i) (λx. x = i)
⊢ ∀i P Q. (P i = Q i) ⇒ GUESS_EXISTS_POINT (λxxx. i) (λx. P x = Q x)
⊢ ∀i P Q. (∀fv. P (i fv) ≠ Q (i fv)) ⇒ GUESS_FORALL_POINT i (λx. P x = Q x)
⊢ (GUESS_EXISTS_POINT i (λx. P x) ∧ GUESS_EXISTS_POINT i (λx. Q x) ⇒
   GUESS_EXISTS_POINT i (λx. P x ⇔ Q x)) ∧
  (GUESS_FORALL_POINT i (λx. P x) ∧ GUESS_FORALL_POINT i (λx. Q x) ⇒
   GUESS_EXISTS_POINT i (λx. P x ⇔ Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. P x) ∧ GUESS_FORALL_POINT i (λx. Q x) ⇒
   GUESS_FORALL_POINT i (λx. P x ⇔ Q x)) ∧
  (GUESS_FORALL_POINT i (λx. P x) ∧ GUESS_EXISTS_POINT i (λx. Q x) ⇒
   GUESS_FORALL_POINT i (λx. P x ⇔ Q x)) ∧
  (GUESS_FORALL_GAP i (λx. P1 x) ∧ GUESS_FORALL_GAP i (λx. P2 x) ⇒
   GUESS_FORALL_GAP i (λx. P1 x ⇔ P2 x)) ∧
  (GUESS_EXISTS_GAP i (λx. P1 x) ∧ GUESS_EXISTS_GAP i (λx. P2 x) ⇒
   GUESS_FORALL_GAP i (λx. P1 x ⇔ P2 x)) ∧
  (GUESS_EXISTS_GAP i (λx. P1 x) ∧ GUESS_FORALL_GAP i (λx. P2 x) ⇒
   GUESS_EXISTS_GAP i (λx. P1 x ⇔ P2 x)) ∧
  (GUESS_FORALL_GAP i (λx. P1 x) ∧ GUESS_EXISTS_GAP i (λx. P2 x) ⇒
   GUESS_EXISTS_GAP i (λx. P1 x ⇔ P2 x))
⊢ ((∀y. GUESS_EXISTS_POINT i (λx. P x y)) ⇒
   GUESS_EXISTS_POINT i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_EXISTS i (λx. P x y)) ⇒ GUESS_EXISTS i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP i (λx. P x y)) ⇒
   GUESS_EXISTS_GAP i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_FORALL_POINT i (λx. P x y)) ⇒
   GUESS_FORALL_POINT i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_FORALL (λxxx. iK) (λx. P x y)) ⇒
   GUESS_FORALL (λxxx. iK) (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_FORALL_GAP i (λx. P x y)) ⇒
   GUESS_FORALL_GAP i (λx. ∃y. P x y))
⊢ ((∀y. GUESS_FORALL_POINT i (λx. P x y)) ⇒
   GUESS_FORALL_POINT i (λx. ∃!y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP i (λx. P x y)) ⇒
   GUESS_EXISTS_GAP i (λx. ∃!y. P x y))
⊢ ((∀y. GUESS_EXISTS_POINT (iy y) (λx. P x y)) ⇒
   GUESS_EXISTS_POINT (λfv. iy (FST fv) (SND fv)) (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_EXISTS (iy y) (λx. P x y)) ⇒
   GUESS_EXISTS (λfv. iy (FST fv) (SND fv)) (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP (iy y) (λx. P x y)) ⇒
   GUESS_EXISTS_GAP (λfv. iy (FST fv) (SND fv)) (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_FORALL_GAP (iy y) (λx. P x y)) ⇒
   GUESS_FORALL_GAP (λfv. iy (FST fv) (SND fv)) (λx. ∃y. P x y))
⊢ ((∀y. GUESS_EXISTS_POINT (λxxx. i y) (λx. P x y)) ⇒
   GUESS_EXISTS_POINT i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_EXISTS (λxxx. i y) (λx. P x y)) ⇒
   GUESS_EXISTS i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP (λxxx. i y) (λx. P x y)) ⇒
   GUESS_EXISTS_GAP i (λx. ∃y. P x y)) ∧
  ((∀y. GUESS_FORALL_GAP (λxxx. i y) (λx. P x y)) ⇒
   GUESS_FORALL_GAP i (λx. ∃y. P x y))
⊢ ((∀y. GUESS_FORALL_POINT i (λx. P x y)) ⇒
   GUESS_FORALL_POINT i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_FORALL i (λx. P x y)) ⇒ GUESS_FORALL i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_FORALL_GAP i (λx. P x y)) ⇒
   GUESS_FORALL_GAP i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_EXISTS_POINT i (λx. P x y)) ⇒
   GUESS_EXISTS_POINT i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_EXISTS (λxxx. iK) (λx. P x y)) ⇒
   GUESS_EXISTS (λxxx. iK) (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP i (λx. P x y)) ⇒
   GUESS_EXISTS_GAP i (λx. ∀y. P x y))
⊢ ((∀y. GUESS_FORALL_POINT (iy y) (λx. P x y)) ⇒
   GUESS_FORALL_POINT (λfv. iy (FST fv) (SND fv)) (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_FORALL (iy y) (λx. P x y)) ⇒
   GUESS_FORALL (λfv. iy (FST fv) (SND fv)) (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_FORALL_GAP (iy y) (λx. P x y)) ⇒
   GUESS_FORALL_GAP (λfv. iy (FST fv) (SND fv)) (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP (iy y) (λx. P x y)) ⇒
   GUESS_EXISTS_GAP (λfv. iy (FST fv) (SND fv)) (λx. ∀y. P x y))
⊢ ((∀y. GUESS_FORALL_POINT (λxxx. i y) (λx. P x y)) ⇒
   GUESS_FORALL_POINT i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_FORALL (λxxx. i y) (λx. P x y)) ⇒
   GUESS_FORALL i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_FORALL_GAP (λxxx. i y) (λx. P x y)) ⇒
   GUESS_FORALL_GAP i (λx. ∀y. P x y)) ∧
  ((∀y. GUESS_EXISTS_GAP (λxxx. i y) (λx. P x y)) ⇒
   GUESS_EXISTS_GAP i (λx. ∀y. P x y))
⊢ (GUESS_FORALL_POINT i (λx. P x) ⇒ GUESS_EXISTS_POINT i (λx. P x ⇒ Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. Q x) ⇒ GUESS_EXISTS_POINT i (λx. P x ⇒ Q x)) ∧
  (GUESS_FORALL i (λx. P x) ∧ GUESS_EXISTS i (λx. Q x) ⇒
   GUESS_EXISTS i (λx. P x ⇒ Q x)) ∧
  (GUESS_FORALL_GAP i (λx. P x) ∧ GUESS_EXISTS_GAP i (λx. Q x) ⇒
   GUESS_EXISTS_GAP i (λx. P x ⇒ Q x)) ∧
  (GUESS_EXISTS (λxxx. iK) (λx. P x) ∧ GUESS_FORALL (λxxx. iK) (λx. Q x) ⇒
   GUESS_FORALL (λxxx. iK) (λx. P x ⇒ Q x)) ∧
  (GUESS_EXISTS i (λx. P x) ⇒ GUESS_FORALL i (λx. P x ⇒ q)) ∧
  (GUESS_FORALL i (λx. Q x) ⇒ GUESS_FORALL i (λx. p ⇒ Q x)) ∧
  (GUESS_EXISTS_POINT i (λx. P x) ∧ GUESS_FORALL_POINT i (λx. Q x) ⇒
   GUESS_FORALL_POINT i (λx. P x ⇒ Q x)) ∧
  (GUESS_EXISTS_GAP i (λx. P x) ⇒ GUESS_FORALL_GAP i (λx. P x ⇒ Q x)) ∧
  (GUESS_FORALL_GAP i (λx. Q x) ⇒ GUESS_FORALL_GAP i (λx. P x ⇒ Q x))
⊢ (GUESS_EXISTS i (λx. P x) ⇒ GUESS_FORALL i (λx. ¬P x)) ∧
  (GUESS_EXISTS_GAP i (λx. P x) ⇒ GUESS_FORALL_GAP i (λx. ¬P x)) ∧
  (GUESS_EXISTS_POINT i (λx. P x) ⇒ GUESS_FORALL_POINT i (λx. ¬P x)) ∧
  (GUESS_FORALL i (λx. P x) ⇒ GUESS_EXISTS i (λx. ¬P x)) ∧
  (GUESS_FORALL_GAP i (λx. P x) ⇒ GUESS_EXISTS_GAP i (λx. ¬P x)) ∧
  (GUESS_FORALL_POINT i (λx. P x) ⇒ GUESS_EXISTS_POINT i (λx. ¬P x))
⊢ ∀P Q. (∀x. ∃fv. x = Q fv) ⇒ GUESS_EXISTS_GAP Q P
⊢ ∀P Q. (∀x. ∃fv. x = Q fv) ⇒ GUESS_FORALL_GAP Q P
⊢ ∀P Q. (∀x. P x ⇒ Q x) ⇒ GUESS_EXISTS_POINT i P ⇒ GUESS_EXISTS_POINT i Q
⊢ ∀P Q. (∀x. P x ⇒ Q x) ⇒ GUESS_FORALL_GAP i P ⇒ GUESS_FORALL_GAP i Q
⊢ ∀i P. P i ⇒ GUESS_EXISTS_POINT (λxxx. i) P
⊢ ∀i P. ¬P i ⇒ GUESS_FORALL_POINT (λxxx. i) P
⊢ ∀y Q. (∀x. (x = y) ∨ ∃fv. x = Q fv) ⇒ GUESS_FORALL_GAP Q (λx. x = y)
⊢ ∀P Q. (∀x. Q x ⇒ P x) ⇒ GUESS_EXISTS_GAP i P ⇒ GUESS_EXISTS_GAP i Q
⊢ ∀P Q. (∀x. Q x ⇒ P x) ⇒ GUESS_FORALL_POINT i P ⇒ GUESS_FORALL_POINT i Q
⊢ ∀l. (HD l::TL l = l) ⇔ l ≠ []
⊢ (∀l. ([HD l] = l) ⇔ (LENGTH l = 1)) ∧ ∀l. (l = [HD l]) ⇔ (LENGTH l = 1)
⊢ ∀P i x. ¬P i ⇒ P x ⇒ x ≠ i
⊢ ((∀l. x ≠ INL l) ⇔ ISR x) ∧ ((∀l. INL l ≠ x) ⇔ ISR x)
⊢ ((∀r. x ≠ INR r) ⇔ ISL x) ∧ ((∀r. INR r ≠ x) ⇔ ISL x)
⊢ ISL x ⇔ ∃l. x = INL l
⊢ ISR x ⇔ ∃r. x = INR r
⊢ ∀f P. IS_REMOVABLE_QUANT_FUN f ⇒ ((∃x. P (f x)) ⇔ ∃x'. P x')
⊢ ∀f P. IS_REMOVABLE_QUANT_FUN f ⇒ ((∀x. P (f x)) ⇔ ∀x'. P x')
⊢ ∀x. IS_SOME x ⇔ x ≠ NONE
⊢ ∀x t1 t2. (t1 ⇒ t2) ⇒ x ∧ t1 ⇒ x ∧ t2
⊢ ∀x t1 t2. (t1 ⇒ t2) ⇒ x ∨ t1 ⇒ x ∨ t2
⊢ n ≤ LENGTH l ⇔ ∃l1 l2. (LENGTH l1 = n) ∧ (l = l1 ⧺ l2)
⊢ n + m ≤ LENGTH l ⇔
  ∃l1 l2. (LENGTH l1 = n) ∧ m ≤ LENGTH l2 ∧ (l = l1 ⧺ l2)
⊢ (0 = LENGTH l) ⇔ (l = [])
⊢ (n < LENGTH xs ⇔ ∃y ys. (xs = y::ys) ∧ n ≤ LENGTH ys) ∧
  (LENGTH xs > n ⇔ ∃y ys. (xs = y::ys) ∧ n ≤ LENGTH ys) ∧
  (0 < n ⇒ ((LENGTH xs = n) ⇔ ∃y ys. (xs = y::ys) ∧ (LENGTH ys = PRE n))) ∧
  (0 < n ⇒ ((n = LENGTH xs) ⇔ ∃y ys. (xs = y::ys) ∧ (LENGTH ys = PRE n))) ∧
  (0 < n ⇒ (n ≤ LENGTH xs ⇔ ∃y ys. (xs = y::ys) ∧ PRE n ≤ LENGTH ys)) ∧
  (0 < n ⇒ (LENGTH xs ≥ n ⇔ ∃y ys. (xs = y::ys) ∧ PRE n ≤ LENGTH ys)) ∧
  (0 < x ⇒ (PRE (x + y) = PRE x + y)) ∧ (0 < y ⇒ (PRE (x + y) = x + PRE y))
⊢ ((LENGTH l = 0) ⇔ (l = [])) ∧ ((0 = LENGTH l) ⇔ (l = [])) ∧
  (LENGTH l < 1 ⇔ (l = [])) ∧ (1 > LENGTH l ⇔ (l = [])) ∧
  (0 ≥ LENGTH l ⇔ (l = [])) ∧ (LENGTH l ≤ 0 ⇔ (l = []))
⊢ ((LENGTH l = 1) ⇔ ∃e1. l = [e1]) ∧ ((1 = LENGTH l) ⇔ ∃e1. l = [e1]) ∧
  (0 < LENGTH l ⇔ ∃l' e1. l = e1::l') ∧
  (LENGTH l > 0 ⇔ ∃l' e1. l = e1::l') ∧
  (1 ≤ LENGTH l ⇔ ∃l' e1. l = e1::l') ∧
  (LENGTH l ≥ 1 ⇔ ∃l' e1. l = e1::l') ∧
  (1 + x ≤ LENGTH l ⇔ ∃l' e1. x ≤ LENGTH l' ∧ (l = e1::l')) ∧
  (LENGTH l ≥ 1 + x ⇔ ∃l' e1. x ≤ LENGTH l' ∧ (l = e1::l')) ∧
  (x + 1 ≤ LENGTH l ⇔ ∃l' e1. x ≤ LENGTH l' ∧ (l = e1::l')) ∧
  (LENGTH l ≥ x + 1 ⇔ ∃l' e1. x ≤ LENGTH l' ∧ (l = e1::l')) ∧
  ((LENGTH l = 1 + x) ⇔ ∃l' e1. (LENGTH l' = x) ∧ (l = e1::l')) ∧
  ((1 + x = LENGTH l) ⇔ ∃l' e1. (LENGTH l' = x) ∧ (l = e1::l')) ∧
  ((LENGTH l = x + 1) ⇔ ∃l' e1. (LENGTH l' = x) ∧ (l = e1::l')) ∧
  ((x + 1 = LENGTH l) ⇔ ∃l' e1. (LENGTH l' = x) ∧ (l = e1::l')) ∧
  ((LENGTH l = 0) ⇔ (l = [])) ∧ ((0 = LENGTH l) ⇔ (l = [])) ∧
  (LENGTH l < 1 ⇔ (l = [])) ∧ (1 > LENGTH l ⇔ (l = [])) ∧
  (0 ≥ LENGTH l ⇔ (l = [])) ∧ (LENGTH l ≤ 0 ⇔ (l = []))
⊢ (LENGTH l < 1 ⇔ (l = [])) ∧ (1 > LENGTH l ⇔ (l = [])) ∧
  (0 ≥ LENGTH l ⇔ (l = [])) ∧ (LENGTH l ≤ 0 ⇔ (l = []))
⊢ (SUC x ≤ LENGTH l ⇔ ∃l' e1. x ≤ LENGTH l' ∧ (l = e1::l')) ∧
  (LENGTH l ≥ SUC x ⇔ ∃l' e1. x ≤ LENGTH l' ∧ (l = e1::l')) ∧
  ((LENGTH l = SUC x) ⇔ ∃l' e1. (LENGTH l' = x) ∧ (l = e1::l')) ∧
  ((SUC x = LENGTH l) ⇔ ∃l' e1. (LENGTH l' = x) ∧ (l = e1::l'))
⊢ (∃x. (∀y. ¬P x y ⇒ R y) ⇒ Q x) ⇔ (∀y. ¬(∀x. P x y) ⇒ R y) ⇒ ∃x. Q x
⊢ (((x,y) = X) ⇔ (x = FST X) ∧ (y = SND X)) ∧
  ((X = (x,y)) ⇔ (FST X = x) ∧ (SND X = y))
⊢ (((x,y) = (x,y')) ⇔ (y = y')) ∧ (((y,x) = (y',x)) ⇔ (y = y')) ∧
  (((FST X,y) = X) ⇔ (y = SND X)) ∧ (((x,SND X) = X) ⇔ (x = FST X)) ∧
  ((X = (FST X,y)) ⇔ (SND X = y)) ∧ ((X = (x,SND X)) ⇔ (FST X = x))
⊢ ∀x t1 t2. (t1 ⇒ t2) ⇒ t1 ∧ x ⇒ t2 ∧ x
⊢ ∀x t1 t2. (t1 ⇒ t2) ⇒ t1 ∨ x ⇒ t2 ∨ x
⊢ (∀v. SIMPLE_GUESS_EXISTS v i (P v)) ⇔ GUESS_EXISTS_GAP (K i) (λv. P v)
⊢ ∀v i P1 P2.
    SIMPLE_GUESS_EXISTS v i P1 ⇒ SIMPLE_GUESS_EXISTS v i (P1 ∧ P2)
⊢ ∀v i P1 P2.
    SIMPLE_GUESS_EXISTS v i P2 ⇒ SIMPLE_GUESS_EXISTS v i (P1 ∧ P2)
⊢ ∀v i. SIMPLE_GUESS_EXISTS v i (v = i)
⊢ ∀v i. SIMPLE_GUESS_EXISTS v i (i = v)
⊢ ∀v i t1 t2 f.
    SIMPLE_GUESS_EXISTS v i (f t1 = f t2) ⇒
    SIMPLE_GUESS_EXISTS v i (t1 = t2)
⊢ ∀v. SIMPLE_GUESS_EXISTS v T v
⊢ ∀v i P.
    (∀v2. SIMPLE_GUESS_EXISTS v i (P v2)) ⇒
    SIMPLE_GUESS_EXISTS v i (∃v2. P v2)
⊢ ∀v i P.
    (∀v2. SIMPLE_GUESS_EXISTS v i (P v2)) ⇒
    SIMPLE_GUESS_EXISTS v i (∀v2. P v2)
⊢ ∀v i P. SIMPLE_GUESS_FORALL v i P ⇒ SIMPLE_GUESS_EXISTS v i (¬P)
⊢ ∀i P. (∀v. SIMPLE_GUESS_EXISTS v i (P v)) ⇒ ((∃v. P v) ⇔ P i)
⊢ (∀v. SIMPLE_GUESS_FORALL v i (P v)) ⇔ GUESS_FORALL_GAP (K i) (λv. P v)
⊢ ∀v i P.
    (∀v2. SIMPLE_GUESS_FORALL v i (P v2)) ⇒
    SIMPLE_GUESS_FORALL v i (∃v2. P v2)
⊢ ∀v i P.
    (∀v2. SIMPLE_GUESS_FORALL v i (P v2)) ⇒
    SIMPLE_GUESS_FORALL v i (∀v2. P v2)
⊢ ∀v i P1 P2.
    SIMPLE_GUESS_EXISTS v i P1 ⇒ SIMPLE_GUESS_FORALL v i (P1 ⇒ P2)
⊢ ∀v i P1 P2.
    SIMPLE_GUESS_FORALL v i P2 ⇒ SIMPLE_GUESS_FORALL v i (P1 ⇒ P2)
⊢ ∀v i P. SIMPLE_GUESS_EXISTS v i P ⇒ SIMPLE_GUESS_FORALL v i (¬P)
⊢ ∀v i P1 P2.
    SIMPLE_GUESS_FORALL v i P1 ⇒ SIMPLE_GUESS_FORALL v i (P1 ∨ P2)
⊢ ∀v i P1 P2.
    SIMPLE_GUESS_FORALL v i P2 ⇒ SIMPLE_GUESS_FORALL v i (P1 ∨ P2)
⊢ ∀i P. (∀v. SIMPLE_GUESS_FORALL v i (P v)) ⇒ ((∀v. P v) ⇔ P i)
⊢ ∀i P.
    (∀v. SIMPLE_GUESS_EXISTS v i (P v)) ⇒
    ((@v. P v) = if P i then i else @v. F)
⊢ ∀i P.
    (∀v. SIMPLE_GUESS_EXISTS v i (P v)) ⇒
    ((some v. P v) = if P i then SOME i else NONE)
⊢ ∀i P. (∀v. SIMPLE_GUESS_EXISTS v i (P v)) ⇒ ((∃!v. P v) ⇔ P i)
⊢ ∀p p1. ((p1,SND p) = p) ⇔ (p1 = FST p)
⊢ ∀p p1. (p = (p1,SND p)) ⇔ (FST p = p1)
⊢ ∀opt. (SOME (THE opt) = opt) ⇔ IS_SOME opt
⊢ ∀opt. (opt = SOME (THE opt)) ⇔ IS_SOME opt
⊢ ∀a P. (∃x. P x) ⇔ (∀x. x ≠ a ⇒ ¬P x) ⇒ P a