Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge 8.16, 8.17 and 8.18 into main #993

Merged
merged 75 commits into from
Oct 16, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
75 commits
Select commit Hold shift + click to select a range
46454e2
Fix monad_map_branches_k name (#953)
JasonGross Apr 23, 2023
d8f1479
Add boolean versions of the varieties of `extends` (#954)
JasonGross Apr 23, 2023
dd8c80d
Add a merge operation for the global env
JasonGross Apr 21, 2023
7ea63fa
Add computable version of Env compatibility; refactor extension a bit
JasonGross Apr 21, 2023
6ddfd13
More extension lemmas
JasonGross Apr 24, 2023
6307467
Fix issue with hint breaking a proof
JasonGross Apr 24, 2023
6c63eac
Add union and inter checker flags (#957)
JasonGross May 3, 2023
198e202
Fix sprop_level/prop_level requring lazy evaluation
mattam82 May 5, 2023
c7b8d8f
Fix use of lazy for (s)prop_level
mattam82 May 5, 2023
f91a1e7
close some computational obligations with defined in erase_global_decls
yforster May 5, 2023
e04bc87
Add MCListable class for enumerating finite types
JasonGross May 5, 2023
c67d968
Merge pull request #962 from JasonGross/coq-8.16+listable
tabareau May 9, 2023
e578a02
Move nix actions away
mattam82 May 9, 2023
bb34a12
Merge pull request #961 from yforster/fix-qed-problem
mattam82 May 9, 2023
14ad024
Invariants in named recursion rule (#967)
yforster Jun 2, 2023
713dbde
Bump cachix/install-nix-action from 20 to 21 (#966)
dependabot[bot] Jun 19, 2023
f1f2028
Merge pull request #955 from JasonGross/coq-8.16+global-env-merge
yforster Jun 19, 2023
6899a1a
Fix a sneaky Prop <= Type use messing up certified erasure
mattam82 Jun 28, 2023
c065ed6
Update Makefile to install erasure plugin
mattam82 Jun 2, 2023
e0794e3
Fix sneaky, useless Prop <= Type use that was breaking certified erasure
mattam82 Jun 28, 2023
f5967d8
Update dependabot.yml to also update other branches
JasonGross Jul 5, 2023
a738c55
Update dependabot.yml to check main, not master
JasonGross Jul 5, 2023
e8d0b36
Bump cachix/install-nix-action from 21 to 22 (#970)
dependabot[bot] Jul 5, 2023
943cc72
Bump cachix/install-nix-action from 21 to 22 (#973)
dependabot[bot] Jul 5, 2023
3e0f857
Bump actions/checkout from 3 to 4 (#978)
dependabot[bot] Sep 4, 2023
555b239
Bump actions/checkout from 3 to 4 (#977)
dependabot[bot] Sep 4, 2023
7723421
Bump cachix/install-nix-action from 22 to 23 (#979)
dependabot[bot] Sep 4, 2023
adba794
improve stengthening to get cumul info on type
tabareau Sep 26, 2023
9fd6f61
more general strengthening
tabareau Sep 26, 2023
46be926
Merge pull request #985 from MetaCoq/improve-strengthening
tabareau Sep 27, 2023
be44477
remove parameters in firstorder inductive types
tabareau Sep 27, 2023
a152eec
Merge pull request #986 from MetaCoq/remove-parameters-in-firstorder-…
tabareau Sep 28, 2023
00a4299
Drastically speed up ByteCompareSpec
JasonGross Sep 30, 2023
9f7cc51
Merge pull request #988 from JasonGross/coq-8.16+bytecomparespec-better
ppedrot Oct 2, 2023
c2d2754
adapt CI and opam files to 8.18
yforster Oct 2, 2023
88b4a4d
update documentation to mention 8.18
yforster Oct 2, 2023
dce0b9e
split out verified erasure pipeline
yforster Jul 6, 2023
a813bff
Add pass implementing boxes as fixpoints
yforster Jul 6, 2023
5bc51f5
adapt name pass to not consider box
yforster Jul 6, 2023
7565dd4
remove assumption
yforster Jul 6, 2023
a359961
Fix definition of Transform.t's observational equivalence preservation
mattam82 Jul 7, 2023
06ca492
prove wellformedness of annotate
yforster Jul 11, 2023
f1a2548
wellformed_annotate_env
yforster Jul 12, 2023
6a1428a
WIP stronger global weakening theorems for optimizations
mattam82 Jul 17, 2023
e09e64d
Allow modifying inductive decls in generic weakenability translation …
mattam82 Aug 21, 2023
805bbda
Prove a more precise result about erase_global_decls with dependencies
mattam82 Aug 23, 2023
8710ece
No need for ext proof for erasure
mattam82 Aug 28, 2023
7158506
Strenghtened program extension preservation
mattam82 Aug 28, 2023
3856b00
Progress on pipeline theorem proof, main argument remains
mattam82 Aug 28, 2023
71819e7
Main argument of the erasure with dependencies proof
mattam82 Aug 29, 2023
93395bf
Finish the proofs in ErasureFunction
mattam82 Aug 30, 2023
80055db
Finished proof of firstorder correctness for erase_pcuic_program
mattam82 Aug 31, 2023
0934fc0
Modify Transform class to allow showing preservation of fo values com…
mattam82 Aug 31, 2023
1f1248d
Proved most of the fo preservation of the lambdabox pipeline
mattam82 Sep 1, 2023
0e5938a
Finish main erasure correctness proof. Need to move expand_lets reaso…
mattam82 Sep 7, 2023
915ce93
We're missing preservation of eta-expandedness by reduction in PCUIC...
mattam82 Sep 8, 2023
f169916
Prove preservation of expansion by reduction using a custom reduction…
mattam82 Sep 11, 2023
2f5fed3
Finished preservation of expansion proof
mattam82 Sep 12, 2023
681a382
Refactor a bit, work on side conditions for let expansion
mattam82 Sep 12, 2023
b072acf
Filled all proofs in ErasureCorrectness
mattam82 Sep 13, 2023
708302f
Cleanup a bit, remain only normalization side-conditions
mattam82 Sep 13, 2023
a0dc628
Fix erasure plugin compilation
mattam82 Sep 13, 2023
487cdf5
Cleanup
mattam82 Sep 15, 2023
dfb03d1
Minor fixes
mattam82 Oct 2, 2023
efe2b96
fix CI
yforster Oct 2, 2023
f2b1cc0
Fix after rebase
mattam82 Oct 3, 2023
357e8a7
Fix test suite
mattam82 Oct 3, 2023
3733e67
Merge pull request #987 from MetaCoq/verified_erasure_pipeline
mattam82 Oct 3, 2023
1fcd7ff
coq-equations.1.3+8.18
yforster Oct 5, 2023
1dc7961
add not_isErasable lemma in EArities
tabareau Oct 10, 2023
65e8a93
Merge pull request #990 from MetaCoq/not_isErasable
tabareau Oct 10, 2023
241dd7f
Merge remote-tracking branch 'origin/coq-8.16' into coq-8.17
yforster Oct 16, 2023
34c831e
fix Makefile
yforster Oct 16, 2023
87f8ebf
Merge branch 'coq-8.17-updates-8.16' into coq-8.18
yforster Oct 16, 2023
97911f2
Remove nix
yforster Oct 16, 2023
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
24 changes: 24 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,27 @@ updates:
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "main"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "coq-8.17"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
labels:
- "dependencies"
- package-ecosystem: "github-actions"
directory: "/"
target-branch: "coq-8.16"
schedule:
# Check for updates to GitHub Actions every weekday
interval: "daily"
labels:
- "dependencies"
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ jobs:
fetch-depth: 0
ref: ${{ env.tested_commit }}
- name: Cachix install
<<<<<<<< HEAD:.github/workflows/nix-action-coq-dev-macos.yml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a merge artifact?

uses: cachix/install-nix-action@v22
========
uses: cachix/install-nix-action@v23
>>>>>>>> coq-8.17-updates-8.16:.github/nix-action-coq-8.17-macos.yml
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Cachix setup metacoq
Expand Down Expand Up @@ -59,7 +63,11 @@ jobs:
fetch-depth: 0
ref: ${{ env.tested_commit }}
- name: Cachix install
<<<<<<<< HEAD:.github/workflows/nix-action-coq-dev-macos.yml
uses: cachix/install-nix-action@v22
========
uses: cachix/install-nix-action@v23
>>>>>>>> coq-8.17-updates-8.16:.github/nix-action-coq-8.17-macos.yml
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Cachix setup metacoq
Expand Down Expand Up @@ -104,7 +112,11 @@ jobs:
fetch-depth: 0
ref: ${{ env.tested_commit }}
- name: Cachix install
<<<<<<<< HEAD:.github/workflows/nix-action-coq-dev-macos.yml
uses: cachix/install-nix-action@v22
========
uses: cachix/install-nix-action@v23
>>>>>>>> coq-8.17-updates-8.16:.github/nix-action-coq-8.17-macos.yml
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Cachix setup metacoq
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,11 @@ jobs:
fetch-depth: 0
ref: ${{ env.tested_commit }}
- name: Cachix install
<<<<<<<< HEAD:.github/workflows/nix-action-coq-dev-ubuntu.yml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And this too

uses: cachix/install-nix-action@v22
========
uses: cachix/install-nix-action@v23
>>>>>>>> coq-8.17-updates-8.16:.github/nix-action-coq-8.17-ubuntu.yml
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Cachix setup metacoq
Expand Down Expand Up @@ -59,7 +63,11 @@ jobs:
fetch-depth: 0
ref: ${{ env.tested_commit }}
- name: Cachix install
<<<<<<<< HEAD:.github/workflows/nix-action-coq-dev-ubuntu.yml
uses: cachix/install-nix-action@v22
========
uses: cachix/install-nix-action@v23
>>>>>>>> coq-8.17-updates-8.16:.github/nix-action-coq-8.17-ubuntu.yml
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Cachix setup metacoq
Expand Down Expand Up @@ -104,7 +112,11 @@ jobs:
fetch-depth: 0
ref: ${{ env.tested_commit }}
- name: Cachix install
<<<<<<<< HEAD:.github/workflows/nix-action-coq-dev-ubuntu.yml
uses: cachix/install-nix-action@v22
========
uses: cachix/install-nix-action@v23
>>>>>>>> coq-8.17-updates-8.16:.github/nix-action-coq-8.17-ubuntu.yml
with:
nix_path: nixpkgs=channel:nixpkgs-unstable
- name: Cachix setup metacoq
Expand Down
3 changes: 2 additions & 1 deletion .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ jobs:
strategy:
matrix:
coq_version:
- 'dev'
- '8.18'
ocaml_version:
- '4.14-flambda'
target: [ local, opam, quick ]
Expand Down Expand Up @@ -55,6 +55,7 @@ jobs:
startGroup "Print opam config"
sudo chown -R coq:coq .
opam config list; opam repo list; opam list
opam pin -y coq-equations.1.3+8.18 "https://github.com/mattam82/Coq-Equations.git#8.18"
endGroup
script: |
startGroup "Build project"
Expand Down
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -405,3 +405,5 @@ erasure-plugin/Makefile.erasureplugin
erasure-plugin/Makefile.erasureplugin.conf
erasure-plugin/Makefile.plugin
erasure-plugin/Makefile.plugin.conf
erasure-plugin/META
safechecker-plugin/META
2 changes: 2 additions & 0 deletions .vscode/metacoq.code-workspace
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
"coqtop.args": [



"-R", "safechecker-plugin/theories", "MetaCoq.SafeCheckerPlugin",

"-R", "utils/theories", "MetaCoq.Utils",
Expand All @@ -27,6 +28,7 @@
"-R", "safechecker/theories", "MetaCoq.SafeChecker",
"-I", "erasure/src",
"-R", "erasure/theories", "MetaCoq.Erasure",
"-R", "erasure-plugin/theories", "MetaCoq.ErasurePlugin",
"-R", "translations", "MetaCoq.Translations",
"-R", "test-suite/plugin-demo/theories", "MetaCoq.ExtractedPluginDemo",
"-R", "test-suite", "MetaCoq.TestSuite"
Expand Down
7 changes: 3 additions & 4 deletions DOC.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,7 @@

## Branches and compatibility

**tl;dr** You should do your PRs against [coq-8.16](https://github.com/MetaCoq/metacoq/tree/coq-8.16).

**tl;dr** You should do your PRs against [coq-8.18](https://github.com/MetaCoq/metacoq/tree/coq-8.16).

Coq's kernel API is not stable yet, and changes there are reflected in MetaCoq's reified structures,
so we do not ensure any compatibility from version to version. There is one branch for each Coq version.
Expand All @@ -22,8 +21,8 @@ stable release of Coq.
<!-- gets backports from `coq-8.11` when possible. Both `coq-8.11` and `coq-8.10` have associated -->
<!-- "alpha"-quality `opam` packages. -->

The branches [coq-8.16](https://github.com/MetaCoq/metacoq/tree/coq-8.16) and [coq-8.17](https://github.com/MetaCoq/metacoq/tree/coq-8.17) are being kept in sync.
The branches [coq-8.6](https://github.com/MetaCoq/metacoq/tree/coq-8.6) to [coq-8.15](https://github.com/MetaCoq/metacoq/tree/coq-8.15) are frozen.
The branches [coq-8.17](https://github.com/MetaCoq/metacoq/tree/coq-8.17) and [coq-8.18](https://github.com/MetaCoq/metacoq/tree/coq-8.18) are being kept in sync.
The branches [coq-8.6](https://github.com/MetaCoq/metacoq/tree/coq-8.6) to [coq-8.15](https://github.com/MetaCoq/metacoq/tree/coq-8.16) are frozen.


## Program and Equations
Expand Down
13 changes: 6 additions & 7 deletions INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,7 @@ To compile the library, you need:

- The `Coq` version corrsponding to your branch (you can use the `coq.dev` package
for the `main` branch).
- `OCaml` (tested with `4.06.1`, `4.07.1`, and `4.10.0`, beware that `OCaml 4.06.0`
can produce linking errors on some platforms)
- `OCaml` (tested with `4.14.0`)
- [`Equations 1.3`](http://mattam82.github.io/Coq-Equations/)

The recommended way to build a development environment for MetaCoq is
Expand All @@ -67,10 +66,10 @@ to have a dedicated `opam` switch (see below).
To get the source code:

# git clone https://github.com/MetaCoq/metacoq.git
# git checkout -b coq-8.17 origin/coq-8.17
# git checkout -b coq-8.18 origin/coq-8.18
# git status

This checks that you are indeed on the `coq-8.17` branch.
This checks that you are indeed on the `coq-8.18` branch.

### Setting up an `opam` switch

Expand All @@ -79,10 +78,10 @@ To setup a fresh `opam` installation, you might want to create a
one yet. You need to use **opam 2** to obtain the right version of
`Equations`.

# opam switch create coq.8.17 --packages=ocaml-variants.4.13.1+options,ocaml-option-flambda
# opam switch create coq.8.18 --packages="ocaml-variants.4.14.0+options,ocaml-option-flambda"
# eval $(opam env)

This creates the `coq.8.17` switch which initially contains only the
This creates the `coq.8.18` switch which initially contains only the
basic `OCaml` `4.13.1` compiler with the `flambda` option enabled,
and puts you in the right environment (check with `ocamlc -v`).

Expand All @@ -96,7 +95,7 @@ If the commands are successful you should have `coq` available (check with `coqc
**Remark:** You can create a [local switch](https://opam.ocaml.org/blog/opam-20-tips/#Local-switches) for
developing using (in the root directory of the sources):

# opam switch create . 4.07.1
# opam switch create . --packages="ocaml-variants.4.14.0+options,ocaml-option-flambda"

Or use `opam switch link foo` to link an existing opam switch `foo` with
the sources directory.
Expand Down
9 changes: 5 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@

all: printconf template-coq pcuic safechecker erasure examples test-suite translations quotation
all: printconf template-coq pcuic safechecker erasure erasure-plugin

-include Makefile.conf

Expand All @@ -26,7 +26,7 @@ else
endif
endif

install: all translations
install: all
$(MAKE) -C utils install
$(MAKE) -C common install
$(MAKE) -C template-coq install
Expand All @@ -36,7 +36,7 @@ install: all translations
$(MAKE) -C quotation install
$(MAKE) -C safechecker-plugin install
$(MAKE) -C erasure install
$(MAKE) -C translations install
$(MAKE) -C erasure-plugin install

uninstall:
$(MAKE) -C utils uninstall
Expand All @@ -48,6 +48,7 @@ uninstall:
$(MAKE) -C quotation uninstall
$(MAKE) -C safechecker-plugin uninstall
$(MAKE) -C erasure uninstall
$(MAKE) -C erasure-plugin uninstall
$(MAKE) -C translations uninstall

html: all
Expand Down Expand Up @@ -175,7 +176,7 @@ cleanplugins:

ci-local-noclean:
./configure.sh local
$(MAKE) all test-suite TIMED=pretty-timed
$(MAKE) all translations test-suite TIMED=pretty-timed

ci-local: ci-local-noclean
$(MAKE) clean
Expand Down
1 change: 1 addition & 0 deletions common/_CoqProject.in
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,6 @@ theories/MonadBasicAst.v
theories/Environment.v
theories/Reflect.v
theories/EnvironmentTyping.v
theories/EnvironmentReflect.v
theories/EnvMap.v
theories/Transform.v
Loading
Loading