-
Notifications
You must be signed in to change notification settings - Fork 9
/
Copy pathequivalence.mli
37 lines (32 loc) · 952 Bytes
/
equivalence.mli
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
open Constr
open Names
open Environ
open Evd
open Lifting
open Stateutils
(* --- Automatically generated equivalence proofs about search components --- *)
(*
* Prove section and retraction
* Return the section term and the retraction term, as well as their types
*)
val prove_equivalence :
env -> evar_map -> lifting -> ((constr * types) * (constr * types))
type pre_adjoint = {
orn : lifting;
sect : Constant.t;
retr0 : Constant.t
}
(*
* Augment the initial retraction proof in order to prove adjunction.
*
* The generic proof of adjunction from the HoTT book relies critically on this
* step; wrapping the proof term for retraction in a clever way (formalized in
* `fg_id'`) makes a later equality of equality proofs true definitionally.
*)
val adjointify_retraction :
env -> pre_adjoint -> evar_map -> constr state
(*
* Prove adjunction.
*)
val prove_adjunction :
env -> pre_adjoint -> evar_map -> (constr * types) state