@@ -4,6 +4,7 @@ import Mathlib.Algebra.Order.Ring.Canonical
4
4
5
5
noncomputable section
6
6
7
+ set_option maxHeartbeats 400000 in
7
8
example (x : Nat) : x ≠ x.succ := ne_of_lt (by library_search)
8
9
example : 0 ≠ 1 + 1 := ne_of_lt (by library_search)
9
10
example (x y : Nat) : x + y = y + x := by library_search
@@ -20,10 +21,10 @@ example (X : Type) (P : Prop) (x : X) (h : ∀ x : X, x = x → P) : P := by lib
20
21
21
22
example (α : Prop ) : α → α := by library_search -- says: `exact id`
22
23
23
- example (p : Prop ) : (¬¬p) → p := by library_search -- says: `exact not_not.mp`
24
- example (a b : Prop ) (h : a ∧ b) : a := by library_search -- says: `exact h.left `
25
-
26
- example (P Q : Prop ) : (¬ Q → ¬ P) → (P → Q) := by library_search
24
+ -- Note: these examples no longer work after we turned off lemmas with discrimination key `#[*]`.
25
+ -- example (p : Prop) : (¬¬p) → p := by library_search -- says: `exact not_not.mp `
26
+ -- example (a b : Prop) (h : a ∧ b) : a := by library_search -- says: `exact h.left`
27
+ -- example (P Q : Prop) : (¬ Q → ¬ P) → (P → Q) := by library_search -- say: `exact Function.mtr`
27
28
28
29
example (a b : ℕ) : a + b = b + a :=
29
30
by library_search -- says: `exact add_comm a b`
@@ -76,20 +77,17 @@ end synonym
76
77
example : ∀ P : Prop , ¬(P ↔ ¬P) := by library_search
77
78
78
79
-- We even find `iff` results:
79
-
80
80
example {a b c : ℕ} (h₁ : a ∣ c) (h₂ : a ∣ b + c) : a ∣ b := by library_search -- says `exact (Nat.dvd_add_iff_left h₁).mpr h₂`
81
81
82
- example {α : Sort u} (h : Empty) : α := by library_search
83
- example {α : Type _ } (h : Empty) : α := by library_search
84
-
85
- example (f : A → C ) (g : B → C) : (A ⊕ B) → C := by library_search
82
+ -- Note: these examples no longer work after we turned off lemmas with discrimination key `#[*]`.
83
+ -- example {α : Sort u } (h : Empty) : α := by library_search -- says `exact Empty.elim h`
84
+ -- example (f : A → C) (g : B → C) : (A ⊕ B) → C := by library_search -- says `exact Sum.elim f g`
85
+ -- example (n : ℕ ) (r : ℚ) : ℚ := by library_search using n, r -- exact nsmulRec n r
86
86
87
87
opaque f : ℕ → ℕ
88
88
axiom F (a b : ℕ) : f a ≤ f b ↔ a ≤ b
89
89
example (a b : ℕ) (h : a ≤ b) : f a ≤ f b := by library_search
90
90
91
- theorem nonzero_gt_one (n : ℕ) : ¬ n = 0 → n ≥ 1 := by library_search -- `exact nat.pos_of_ne_zero`
92
-
93
91
example (L _M : List (List ℕ)) : List ℕ := by library_search using L
94
92
95
93
example (P _Q : List ℕ) (h : ℕ) : List ℕ := by library_search using h, P
@@ -102,9 +100,6 @@ example (n m : ℕ) : ℕ := by library_search using n, m -- exact rightAdd n m
102
100
example (P Q : List ℕ) (_h : ℕ) : List ℕ :=
103
101
by library_search using P, Q -- exact P ∩ Q
104
102
105
- example (n : ℕ) (r : ℚ) : ℚ :=
106
- by library_search using n, r -- exact nsmulRec n r
107
-
108
103
-- Check that we don't use sorryAx:
109
104
-- (see https://github.com/leanprover-community/mathlib4/issues/226)
110
105
0 commit comments