def sc_take_rep
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/list.bend as Listimport Base
import bend-collections-laws-crypto@1.0.0.0/proofs/lib/logic.bend as L
import bend-collections-laws-crypto@1.0.0.0/spec/lib/common.bend as SC
395def sc_take_rep(-A: Data, +m: Nat, +x: A, +n: Nat, +h: {Nat.is_le(n, m) == True{} : Bool}) -> {SC.take(A, SC.replicate(A, m, x), n) == SC.replicate(A, n, x) : List<&2, A>}:
396 match m n:
397 case 0n 0n:
398 {==}
399 case 0n 1n+k:
400 Empty.absurd({SC.take(A, Nil{}, 1n+k) == SC.replicate(A, 1n+k, x) : List<&2, A>}, L.false_true(h))
401 case 1n+j 0n:
402 {==}
403 case 1n+j 1n+k:
404 cons_cong(A, x, SC.take(A, SC.replicate(A, j, x), k), SC.replicate(A, k, x), sc_take_rep(A, j, x, k, h))
Uses (9)
Used by (0)
No other definition uses this definition.