Make `FId` take type argument
bvssvni opened this issue · comments
The idea is to make FId
more well behaved seen from a Category Theory perspective.
For example, not . not == idb
is correct, but not . not == id
is probably not.
/// `(not . not) : a -> a`.
pub fn proof<A: Prop>() -> Ty<Comp<FNot, FNot>, Pow<A, A>> {
let x: Ty<FId, Pow<A, A>> = id_ty();
path_semantics::ty_eq_left(eq::symmetry(eq_not_not_id())).0(x)
}
One problem is id[f -> id] == inv(f)
where one does not care about the type of f
.