|
1 | | -From MetaCoq.Template Require Import Loader. |
| 1 | +From MetaCoq.Template Require Import Loader Ast. |
2 | 2 | From MetaCoq.ErasurePlugin Require Import Erasure Loader. |
3 | | -From MetaCoq.Utils Require Import utils. |
4 | | -From MetaCoq.Template Require Import Ast. |
5 | | -From MetaCoq.Erasure.Typed Require Import ResultMonad. |
6 | | -From MetaCoq.Erasure.Typed Require Import Optimize. |
7 | | -From MetaCoq.Erasure.Typed Require Import Extraction. |
8 | | -From Coq Require Import ZArith. |
9 | | -From Coq Require Import List. |
10 | | -From Coq Require Import String. |
11 | | -From Coq Require Import Nat. |
12 | | - |
13 | | -Import MCMonadNotation. |
| 3 | +From MetaCoq.Utils Require Import utils. |
| 4 | +From Coq Require Import ZArith List String Nat. |
| 5 | + |
14 | 6 | Import ListNotations. |
15 | 7 |
|
16 | | -Local Open Scope string. |
17 | | -Local Notation "'bs_to_s' s" := (bytestring.String.to_string s) (at level 200). |
18 | | -Local Notation "'s_to_bs' s" := (bytestring.String.of_string s) (at level 200). |
| 8 | +Check run_erase_program. |
19 | 9 |
|
| 10 | +Locate run_erase_program. |
20 | 11 |
|
21 | | -Program Definition cic_to_box p := |
22 | | - run_erase_program default_erasure_config ([], p) _. |
| 12 | +Program Definition cic_to_box (p : program) := |
| 13 | + run_erase_program default_erasure_config p _. |
23 | 14 | Next Obligation. |
24 | | - split. easy. |
25 | 15 | split. |
26 | 16 | now eapply assume_that_we_only_erase_on_welltyped_programs. |
27 | 17 | cbv [PCUICWeakeningEnvSN.normalizationInAdjustUniversesIn]. |
@@ -52,7 +42,23 @@ with odd (n : nat) := |
52 | 42 | | S n => even n |
53 | 43 | end. |
54 | 44 |
|
55 | | -Definition prog := double. |
| 45 | +Set Primitive Projections. |
| 46 | +Set Printing Projections. |
| 47 | + |
| 48 | +Record Prod (A B : Type) : Type := Pair |
| 49 | + { fst : A |
| 50 | + ; snd : B |
| 51 | + }. |
| 52 | + |
| 53 | +Arguments Pair {_ _} _ _. |
| 54 | +Arguments fst {_ _} _. |
| 55 | +Arguments snd {_ _} _. |
| 56 | + |
| 57 | +Definition pair : Prod bool bool := Pair true false. |
| 58 | + |
| 59 | +Definition prog := pair.(fst). |
56 | 60 |
|
57 | | -MetaCoq Quote Recursively Definition ex1 := prog. |
| 61 | +MetaCoq Quote Recursively Definition ex1 := fst. |
| 62 | +Check ex1. |
| 63 | +Print ex1. |
58 | 64 | Eval vm_compute in cic_to_box ex1. |
0 commit comments