Commit graph

20392 commits

Author SHA1 Message Date
Leonardo de Moura
ce12ecfe13 fix: free variable collision at LCNF/Specialize.lean 2022-09-24 18:51:32 -07:00
Leonardo de Moura
5969dc2694 feat: beta-reduce at LCNF normExpr 2022-09-24 18:26:34 -07:00
Leonardo de Moura
f7a1429cfd feat: improve ppDecl' 2022-09-24 18:09:43 -07:00
Leonardo de Moura
c858aa3088 feat: replace getStage1Decl? with new getDecl? 2022-09-24 15:00:19 -07:00
Leonardo de Moura
ce90e98648 feat: activate new compiler first phase 2022-09-24 14:20:21 -07:00
Leonardo de Moura
33fdde9b22 fix: LCNF compatibleTypes
Missing rules:
`⊤ a` is compatible with anything.
` a` is compatible with anything.
2022-09-24 14:20:21 -07:00
Leonardo de Moura
7ca7139fe8 fix: incorrect [inline] annotation 2022-09-24 14:20:21 -07:00
Leonardo de Moura
e51b078015 fix: incorrect annotations 2022-09-24 14:20:21 -07:00
Leonardo de Moura
6343b97acb feat: display inlining stack when maximum recursion depth has been reached 2022-09-24 14:20:21 -07:00
Leonardo de Moura
7d583f9543 fix: convert _unsafe_rec to original name 2022-09-24 08:19:41 -07:00
Leonardo de Moura
b88bd98afa fix: unreach case for Code.bind 2022-09-24 08:13:17 -07:00
Leonardo de Moura
947811cab8 fix: zero exit points != one exit point 2022-09-24 08:13:17 -07:00
Sebastian Ullrich
3288f437c2 refactor: further simplify RBMap balancing 2022-09-24 14:16:48 +02:00
Sebastian Ullrich
95f2e4e2e0 refactor: cleanup, simplify RBMap balances 2022-09-24 14:16:48 +02:00
Ed Ayers
2a6697e077
feat: goal-diffs (#1610) 2022-09-24 11:46:11 +02:00
Leonardo de Moura
85c468c853 fix: remove internal name hack at [specialize] and [inline] attributes 2022-09-23 20:25:16 -07:00
Leonardo de Moura
011521013d feat: use phase at inferConstType, save specialization 2022-09-23 16:45:04 -07:00
Leonardo de Moura
0c82e8bd0d feat: make sure base phase contains an entry for each declaration being compiled at `init 2022-09-23 16:31:38 -07:00
Leonardo de Moura
2be8cb93ac feat: store phase at CompilerM context 2022-09-23 16:30:51 -07:00
Leonardo de Moura
c333581689 fix: functions occurring as arguments of other functions are not inlined 2022-09-23 14:43:06 -07:00
Leonardo de Moura
e4f0f4b794 fix: shouldGenerateCode fix for axiom 2022-09-23 14:25:48 -07:00
Leonardo de Moura
5322aa79f6 fix: apply findJoinPoints before pullFunDecls
`pullFunDecls` affects the effectiveness of `findJoinPoints`
2022-09-23 14:00:24 -07:00
Leonardo de Moura
004822aba4 fix: mixing Lean and LCNF types at toLCNF 2022-09-23 13:56:31 -07:00
Leonardo de Moura
609d241ad4 fix: improve updateFunDeclInfo precision 2022-09-23 13:56:14 -07:00
Leonardo de Moura
8cf225e9ce fix: PassInstaller staging issue
The builtin pass installer cannot be installed using `[cpass]` because
it will not be activated until we process `Passes.lean`
2022-09-23 08:17:58 -07:00
Leonardo de Moura
c165317b28 feat: add ImportM.runCoreM 2022-09-23 07:52:13 -07:00
Leonardo de Moura
e53ac503da refactor: move PassInstaller to CoreM 2022-09-23 07:22:54 -07:00
Leonardo de Moura
aa17641f18 chore: LCNF imports 2022-09-23 07:05:57 -07:00
Leonardo de Moura
4323205185 fix: support user-defined empty inductives at toLCNF 2022-09-23 05:50:02 -07:00
Leonardo de Moura
eed569153b fix: dependent field issue 2022-09-22 20:38:42 -07:00
Leonardo de Moura
5db452cfe7 doc: add note at LCNF internalizer
We should also new tests that expose the problem.
2022-09-22 20:19:01 -07:00
Leonardo de Moura
412a05d0d6 fix: ensure cases field parameters do not occur in types 2022-09-22 20:15:39 -07:00
Leonardo de Moura
a7a6103862 feat: add scoped notation for LCNF pretty printer 2022-09-22 17:07:34 -07:00
Leonardo de Moura
c0ac2138f7 fix: ensure inferForallType at LCNF handles universes like the kernel and MetaM 2022-09-22 16:38:16 -07:00
Leonardo de Moura
1437b9cd90 fix: non-termination when eta-expanding Eq.ndrec at toLCNF 2022-09-22 16:04:19 -07:00
Leonardo de Moura
f721e44718 fix: simplify compatibleTypes
Add note about "erasure confusion" in LCNF.
2022-09-22 15:15:32 -07:00
Leonardo de Moura
955d3d4ff5 fix: missing case at isErasedCompatible 2022-09-22 14:16:29 -07:00
Leonardo de Moura
096a6fd4fb fix: use eta at compatibleTypes 2022-09-22 13:57:14 -07:00
Leonardo de Moura
1f8d8df3ac fix: compatibleTypes 2022-09-22 12:52:39 -07:00
Mario Carneiro
2ac687b22b feat: if _ : cond then t else e syntax (part 2) 2022-09-22 11:01:08 -07:00
Mario Carneiro
b8cf796941 feat: if _ : cond then t else e syntax 2022-09-22 11:01:08 -07:00
Leonardo de Moura
a2bcb3b73e fix: erase propositon formers, add isErasedCompatible, remove approx. from compatibleTypes 2022-09-21 20:47:02 -07:00
Leonardo de Moura
79c8a3879b fix: LCNF compatibleTypes function 2022-09-21 19:14:25 -07:00
Leonardo de Moura
917f87fee4 fix: forward declaration type 2022-09-21 18:40:38 -07:00
Leonardo de Moura
05f0a6c423 fix: skip declarations that do not have a value 2022-09-21 18:40:20 -07:00
Leonardo de Moura
a5abe864f3 chore: prepare to activate new code generator 2022-09-21 18:09:19 -07:00
Leonardo de Moura
9080701126 refactor: move compileDecl, compileDecls, and addDecl to CoreM
The new code generator entry point is in `CoreM`.
2022-09-21 18:09:19 -07:00
Leonardo de Moura
c52203ff57 feat: add baseExt environment extension for storing code generator results 2022-09-21 18:09:19 -07:00
Leonardo de Moura
f9898a1d45 chore: cleanup 2022-09-21 18:09:19 -07:00
Mario Carneiro
3f229d5437 fix: add colGt 2022-09-21 18:04:31 -07:00