lean4-htt/tests/lean/run/andCasesOnBug.lean
Kyle Miller 4575799f8e
chore: library style cleanup (#9654)
This PR cleans up the style of the library in anticipation of a future
PR that requires strict indentation for tactic sequences.
2025-07-31 21:28:59 +00:00

29 lines
793 B
Text
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

inductive FinInt: Nat → Type :=
| nil: FinInt 0
| next: Bool → FinInt n → FinInt (n+1)
deriving DecidableEq
def zero (sz: Nat): FinInt sz :=
match sz with
| 0 => .nil
| sz+1 => .next false (zero sz)
inductive Pair :=
| mk (sz: Nat) (lhs rhs: FinInt sz)
def makePair?: (n m: (sz: Nat) × FinInt sz) → Option Pair
| ⟨sz, lhs⟩, ⟨sz', rhs⟩ =>
if EQ: true /\ sz = sz' then
have rhs' : FinInt sz := by {
cases EQ with | intro left right
simp [right];
exact rhs;
};
some (Pair.mk sz lhs rhs')
else none
def usePair: Pair → Bool := fun ⟨sz, lhs, rhs⟩ => lhs = rhs
/-- info: some true -/
#guard_msgs in
#eval (makePair? ⟨8, zero 8⟩ ⟨8, zero 8⟩).map usePair