\import Algebra.Ordered
\import Arith.Nat
\import Function.Meta
\import Order.StrictOrder
\import Paths.Meta
\func fac (n : Nat) : Nat
| 0 => 1
| suc n => suc n Nat.* fac n
\lemma fac>0 {n : Nat} : 0 < fac n \elim n
| 0 => NatSemiring.zero<suc
| suc n => rewrite NatSemiring.*-comm $ LinearlyOrderedAbMonoid.<=_+-left zero<=_ fac>0