Documentation

Mathlib.Tactic.Ring.PNat

Additional instances for ring over PNat #

This adds some instances which enable ring to work on PNat even though it is not a commutative semiring, by lifting to Nat.

instance Mathlib.Tactic.Ring.instCSLiftValPNatNatToPNat {n : } {h : 0 < n} :
CSLiftVal (n.toPNat h) n
instance Mathlib.Tactic.Ring.instCSLiftValPNatNatHAdd {n : ℕ+} {n' : } {k : ℕ+} {k' : } [h1 : CSLiftVal n n'] [h2 : CSLiftVal k k'] :
CSLiftVal (n + k) (n' + k')
instance Mathlib.Tactic.Ring.instCSLiftValPNatNatHMul {n : ℕ+} {n' : } {k : ℕ+} {k' : } [h1 : CSLiftVal n n'] [h2 : CSLiftVal k k'] :
CSLiftVal (n * k) (n' * k')
instance Mathlib.Tactic.Ring.instCSLiftValPNatNatHPow {n : ℕ+} {n' k : } [h1 : CSLiftVal n n'] :
CSLiftVal (n ^ k) (n' ^ k)