lean4-htt/src/Lean/Elab/Deriving.lean
Joachim Breitner 186f5a6960
feat: deriving ReflBEq and LawfulBEq (#10351)
This PR adds the ability to do `deriving ReflBEq, LawfulBEq`. Both
classes have to listed in the `deriving` clause. For `ReflBEq`, a simple
`simp`-based proof is used. For `LawfulBEq`, a dedicated,
syntax-directed tactic is used that should work for derived `BEq`
instances. This is meant to work with `deriving BEq` (but you can try to
use it on hand-rolled `@[methods_specs] instance : BEq…` instances).
Does not support mutual or nested inductives.
2025-09-16 12:58:01 +00:00

23 lines
785 B
Text

/-
Copyright (c) 2020 Microsoft Corporation. All rights reserved.
Released under Apache 2.0 license as described in the file LICENSE.
Authors: Leonardo de Moura
-/
module
prelude
public import Lean.Elab.Deriving.Basic
public import Lean.Elab.Deriving.Util
public import Lean.Elab.Deriving.Inhabited
public import Lean.Elab.Deriving.Nonempty
public import Lean.Elab.Deriving.TypeName
public import Lean.Elab.Deriving.BEq
public import Lean.Elab.Deriving.DecEq
public import Lean.Elab.Deriving.Repr
public import Lean.Elab.Deriving.FromToJson
public import Lean.Elab.Deriving.SizeOf
public import Lean.Elab.Deriving.Hashable
public import Lean.Elab.Deriving.Ord
public import Lean.Elab.Deriving.ToExpr
public import Lean.Elab.Deriving.ReflBEq
public import Lean.Elab.Deriving.LawfulBEq