-
Notifications
You must be signed in to change notification settings - Fork 3
/
meta.yml
129 lines (102 loc) · 3.81 KB
/
meta.yml
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
---
fullname: Trocq
shortname: trocq
organization: coq-community
community: true
action: false
coqdoc: false
doi: 10.5281/zenodo.10492403
synopsis: >-
A modular parametricity plugin for proof transfer in Coq
description: |-
Trocq is a prototype of a modular parametricity plugin for Coq, aiming
to perform proof transfer by translating the goal into an associated
goal featuring the target data structures as well as a rich
parametricity witness from which a function justifying the goal
substitution can be extracted.
The plugin features a hierarchy of parametricity witness types,
ranging from structure-less relations to a new formulation of type
equivalence, gathering several pre-existing parametricity
translations, including
[univalent parametricity](https://doi.org/10.1145/3429979) and
[CoqEAL](https://github.com/coq-community/coqeal), in the same framework.
This modular translation performs a fine-grained analysis and
generates witnesses that are rich enough to preprocess the goal yet
are not always a full-blown type equivalence, allowing to perform
proof transfer with the power of univalent parametricity, but trying
not to pull in the univalence axiom in cases where it is not required.
The translation is implemented in Coq-Elpi and features transparent
and readable code with respect to a sequent-style theoretical presentation.
publications:
- pub_url: https://hal.science/hal-04177913/document
pub_title: 'Trocq: Proof Transfer for Free, With or Without Univalence'
authors:
- name: Cyril Cohen
initial: true
- name: Enzo Crance
initial: true
- name: Assia Mahboubi
initial: true
maintainers:
- name: Cyril Cohen
nickname: CohenCyril
- name: Enzo Crance
nickname: ecranceMERCE
- name: Assia Mahboubi
nickname: amahboubi
opam-file-maintainer: Enzo Crance <[email protected]>
opam-file-version: dev
license:
fullname: GNU Lesser General Public License v3.0
identifier: LGPL-3.0-or-later
file: LICENSE
supported_coq_versions:
text: 8.17
opam: '{>= "8.17" & < "8.18"}'
tested_coq_opam_versions:
- version: '8.17'
dependencies:
- opam:
name: coq-elpi
version: '{= "dev"}'
description: |-
[Coq-Elpi custom version](https://github.com/ecranceMERCE/coq-elpi/tree/strat)
- opam:
name: coq-hott
version: '{>= "8.17" & < "8.18~"}'
description: |-
[Coq-HoTT 8.17](https://github.com/HoTT/Coq-HoTT)
namespace: Trocq
keywords:
- name: automation
- name: elpi
- name: proof transfer
- name: isomorphism
- name: univalence
- name: parametricity
categories:
- name: Computer Science/Decision Procedures and Certified Algorithms/Decision procedures
- name: Miscellaneous/Coq Extensions
build: |-
## Building and installation instructions
As Trocq is a prototype, it is currently unreleased, and depends on a
[custom version](https://github.com/ecranceMERCE/coq-elpi/tree/strat)
of Coq-Elpi. It is not yet packaged in Opam or Nix, but will be in
the near future.
There are however three ways to develop it and experiment with it,
they are documented in the [INSTALL.md file](INSTALL.md).
documentation: |-
## Documentation
For now, there is one tactic:
- `trocq` (without arguments) which attempts to run a translation on
a given goal, using the information provided by the user with the
commands described below.
And three commands:
- `Trocq Use t` to use a translation `t` during the subsequent calls to
the tactic `trocq`.
- `Trocq Register Univalence u` to declare a univalence axiom `u`.
- `Trocq Register Funext fe` to declare a function extensionality axiom `fe`.
See the [tutorial](artifact-doc/TUTORIAL.md) for concrete usecases.
## ESOP 2024 artifact documentation
The ESOP 2024 artifact documentation files can be found in the `artifact-doc` directory, except for `INSTALL.md` that can be found in the current directory.
---