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)