diff --git a/tests/lean/run/matchEqs.lean b/tests/lean/run/matchEqs.lean index 4af9eb4ed9..dfdd55c5e3 100644 --- a/tests/lean/run/matchEqs.lean +++ b/tests/lean/run/matchEqs.lean @@ -30,3 +30,6 @@ theorem ex (x : List Nat) : f x > 0 := by . decide . exact h1 . exact h2 + +test% Std.RBNode.balance1.match_1 +#check @Std.RBNode.balance1.match_1.splitter diff --git a/tests/lean/run/split1.lean b/tests/lean/run/split1.lean index 8dfde9a0ce..0159f857ad 100644 --- a/tests/lean/run/split1.lean +++ b/tests/lean/run/split1.lean @@ -4,7 +4,7 @@ def f (xs : List Nat) : Nat := | [a, b] => (a + b).succ | _ => 2 -theorem ex (xs : List Nat) (hr : xs.reverse = xs) (ys : Nat) : ys > 0 → f xs > 0 := by +theorem ex1 (xs : List Nat) (hr : xs.reverse = xs) (ys : Nat) : ys > 0 → f xs > 0 := by simp [f] split next => intro hys; simp @@ -14,3 +14,16 @@ theorem ex (xs : List Nat) (hr : xs.reverse = xs) (ys : Nat) : ys > 0 → f xs > rw [f.match_1.eq_3] anyGoals assumption decide + +def g (xs : List Nat) : Nat := + match xs with + | [a, b, c, d, e] => a + e + 1 + | _ => 1 + +theorem ex2 (xs : List Nat) : g xs > 0 := by + simp [g] + split + . simp; apply Nat.zero_lt_succ + . rw [g.match_1.eq_2] + . decide + . assumption