packages feed

rzk-0.9.0: test/typecheck/cases/happy-flip-unflip.rzk

#lang rzk-1

-- Test: _op (flip(i) === 0_2) is equivalent to (i === 1_2)
-- Verified via propositional equality of topes under _op

#def test-flip-tope-equiv
  (i : 2)
  : let mod _op q := inv_op (i === 1_2) in
    let mod _op fi := flip_op i in
    _op (q = (fi === 0_2))
  := mod _op refl

-- Symmetric case: _op (flip(i) === 1_2) is equivalent to (i === 0_2)

#def test-flip-tope-equiv-sym
  (i : 2)
  : let mod _op q := inv_op (i === 0_2) in
    let mod _op fi := flip_op i in
    _op (q = (fi === 1_2))
  := mod _op refl

-- flip/unflip with 2: inv roundtrip

#def test-flip-inv-roundtrip-2
  (i : 2)
  : let mod _op q := inv_op (i === 0_2) in
    let mod _op fi := flip_op i in
    _op (q = (fi === 1_2))
  := mod _op refl