enat_to_nat #
This file implements the enat_to_nat tactic that shifts ENats in the context to Nat.
Implementation details #
The implementation follows these steps:
- Apply the
casestactic to eachENatvariable, producing two goals: one where the variable is⊤, and one where it is a finite natural number. - Simplify arithmetic expressions involving infinities, making (in)equalities either trivial
or free of infinities. This step uses the
enat_to_nat_topsimp set. - Translate the remaining goals from
ENattoNatusing theenat_to_nat_coesimp set.
Finds the first ENat in the context and applies the cases tactic to it.
Then simplifies expressions involving ⊤ using the enat_to_nat_top simp set.
Equations
- Mathlib.Tactic.ENatToNat.tacticCases_first_enat = Lean.ParserDescr.node `Mathlib.Tactic.ENatToNat.tacticCases_first_enat 1024 (Lean.ParserDescr.nonReservedSymbol "cases_first_enat" false)
Instances For
enat_to_nat shifts all ENats in the context to Nat, rewriting propositions about them.
A typical use case is enat_to_nat; omega.
Equations
- Mathlib.Tactic.ENatToNat.tacticEnat_to_nat = Lean.ParserDescr.node `Mathlib.Tactic.ENatToNat.tacticEnat_to_nat 1024 (Lean.ParserDescr.nonReservedSymbol "enat_to_nat" false)