lean4-htt/tests/lean/run/symm.lean
2024-02-29 04:12:52 +00:00

27 lines
856 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.

import Init.Tactics
set_option autoImplicit true
set_option linter.missingDocs false
-- testing that the attribute is recognized
@[symm] def eq_symm {α : Type} (a b : α) : a = b → b = a := Eq.symm
example (a b : Nat) : a = b → b = a := by intros; symm; assumption
example (a b : Nat) : a = b → True → b = a := by intro h _; symm at h; assumption
def sameParity : Nat → Nat → Prop
| n, m => n % 2 = m % 2
@[symm] def sameParity_symm (n m : Nat) : sameParity n m → sameParity m n := Eq.symm
example (a b : Nat) : sameParity a b → sameParity b a := by intros; symm; assumption
def MyEq (n m : Nat) := ∃ k, n + k = m ∧ m + k = n
@[symm] theorem MyEq.symm {n m : Nat} (h : MyEq n m) : MyEq m n := by
rcases h with ⟨k, h1, h2⟩
exact ⟨k, h2, h1⟩
example {n m : Nat} (h : MyEq n m) : MyEq m n := by
symm
assumption