def perm_checked
import bend-collections-laws-math@1.0.0.0/proofs/math/typed/u32int.bend as U32intimport Base
import bend-collections-laws-math@1.0.0.0/spec/math/generic.bend as SG
import bend-collections-laws-math@1.0.0.0/src/math/generic.bend as G
import bend-collections-laws-math@1.0.0.0/src/math/num.bend as NM
import bend-collections-laws-math@1.0.0.0/src/math/natural.bend as M
import bend-collections-laws-math@1.0.0.0/src/math/instances.bend as I
import bend-collections-laws-math@1.0.0.0/proofs/math/natural/fact.bend as FA
import bend-collections-laws-math@1.0.0.0/spec/math/natural.bend as S
901def perm_checked(+n: U32, +k: U32) -> SG.Perm.checked(~U32, ~I.u32_op, ~I.u32_is, ~SG.u32_val, ~SG.u32_of, 32n, n, k):
902 Equal.trans(Result<&2, &2, NM.NumError, U32>, G.perm_big(~U32, ~I.u32_op, ~I.u32_is, n, k, I.u32_is(NM.Lt{n, k})), SG.checked(~U32, ~SG.u32_of, 32n, S.desc(v(n), v(k))), SG.checked(~U32, ~SG.u32_of, 32n, M.perm(v(n), v(k))), perm_top(32n, {==}, n, k, I.u32_is(NM.Lt{n, k}), {==}), Equal.cong(Nat, Result<&2, &2, NM.NumError, U32>, t => SG.checked(~U32, ~SG.u32_of, 32n, t), S.desc(v(n), v(k)), M.perm(v(n), v(k)), Equal.sym(Nat, M.perm(v(n), v(k)), S.desc(v(n), v(k)), FA.perm_ok(v(n), v(k)))))
Uses (20)
Used by (0)
No other definition uses this definition.