def swap_m_occ

bend-collections-laws-math@1.0.0.0 · proofs/math/random/shuffle.bend:87

import bend-collections-laws-math@1.0.0.0/proofs/math/random/shuffle.bend as Shuffle
import Base
import bend-collections-laws-math@1.0.0.0/src/math/random/rand.bend as R

87def swap_m_occ(~A: Data, ~V: Data, ~rel: A -> V -> Bool, +v: V, +xs: List<&2, A>, +i: Nat, +j: Nat, +a: Maybe<&2, A>, +b: Maybe<&2, A>, +ha: {R.nth(A, xs, i) == a : Maybe<&2, A>}, +hb: {R.nth(A, xs, j) == b : Maybe<&2, A>}) -> {occ(~A, ~V, ~rel, v, R.swap_m(A, xs, i, j, a, b)) == occ(~A, ~V, ~rel, v, xs) : Nat}:
88  match a b:
89    case Some{x} Some{y}:
90      swap_some(~A, ~V, ~rel, v, xs, i, j, x, y, ha, hb)
91    case None{} _:
92      {==}
93    case Some{x} None{}:
94      {==}

Uses (8)

Used by (1)