File tree Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Expand file tree Collapse file tree 1 file changed +8
-1
lines changed Original file line number Diff line number Diff line change @@ -46,11 +46,18 @@ finToNatShift (S k) a = cong S (finToNatShift k a)
46
46
-- -----------------------------------------------
47
47
48
48
||| Compute the Fin such that `k + invFin k = n - 1`
49
- export
49
+ public export
50
50
invFin : {n : Nat } -> Fin n -> Fin n
51
51
invFin FZ = last
52
52
invFin (FS k) = weaken (invFin k)
53
53
54
+ export
55
+ invFinSpec : {n : _} -> (i : Fin n) -> 1 + finToNat i + finToNat (invFin i) = n
56
+ invFinSpec {n = S k} FZ = cong S finToNatLastIsBound
57
+ invFinSpec (FS k) = let H = invFinSpec k in
58
+ let h = finToNatWeakenNeutral {n = invFin k} in
59
+ cong S (rewrite h in H )
60
+
54
61
||| The inverse of a weakened element is the successor of its inverse
55
62
export
56
63
invFinWeakenIsFS : {n : Nat } -> (m : Fin n) -> invFin (weaken m) = FS (invFin m)
You can’t perform that action at this time.
0 commit comments