Coq is a formal proof management system. It provides a formal language to write mathematical definitions, executable algorithms and theorems together with an environment for semi-interactive development of machine-checked proofs.
Set Primitive Projections.
Set Implicit Arguments.
Set Universe Polymorphism.
Record category :=
{ ob : Type }.
Goal forall C, ob C -> ob C.
intros.
generalize dependent (@ob C).
(* 1 subgoals, subgoal 1 (ID 6)
C : category
X : ob C
============================
Type -> ob C
(dependent evars:) *)
Undo.
generalize dependent (ob C).
(* 1 subgoals, subgoal 1 (ID 7)
C : category
============================
forall T : Type, T -> T
(dependent evars:) *)
This might subsume #79.