forked from 1lab/mikan
No description
- Haskell 60.6%
- Agda 26.8%
- TeX 5.3%
- HTML 4%
- Emacs Lisp 1.9%
- Other 1.4%
|
Amélia Liao
b168a06b76
The code was already using forceNotFree to try removing the offending
variables if necessary, so all that was needed to actually get it
working was a minor adjustment to the ForceNotFree instances to make
sure they actually reach everywhere that a MaybeFree variable might be
hiding.
Fixes a pretty bad case of quadratic type-checking time for long
telescopes, see test/Succeed/OccursCheckInstantiate, where the issue was
instantiateFull quadratically re-traversing the prefix of the telescope
up to the meta to decide how to prune f out of the metavariable standing
for its type: in each argument we had
A(7 + n) : ∀ a b c d e (f : ?0) → _≡_ {?1 f} f (A6 a b c d e)
?1 f := ?0
except the meta ?1 from which we were trying to kill f was also applied
to the entirety of An telescope up to A(7 + n), and the sorts of those
variables were *also* metas, and instantiateFull wanted to traverse
*all* of these sorts. However Occurs was basically already using the
rapier approach to free variable handling so we just had to remove the
quadratic sledgehammer.
Testing performance regressions is kinda difficult, though, and I can
only hope that 64M is enough heap to pass in CI!
|
||
|---|---|---|
| .woodpecker | ci: use add instead of install | |
| benchmark | rename Set to Type | |
| cubical @fe3394eba7 | Update std-lib and cubical submodules | |
| doc | rename Set to Type | |
| mk | chore: remove more references to stack | |
| notes | Remove modalities | |
| src | perf: remove instantiateFull in killArgs | |
| test | perf: remove instantiateFull in killArgs | |
| .editorconfig | Add an EditorConfig file | |
| .gitignore | Remove modalities | |
| .gitmodules | chore: remove stdlib | |
| .hlint.yaml | Follow hlint suggestion: redundant case | |
| .mailmap | Update .mailmap | |
| cabal.project | fix: pull mikan-bisect back out into cabal file | |
| cabal.project.ghc-9.14.1 | [workflows] add Cabal GHC 9.14, reactivate cubical [wasm] | |
| cabal.project.tc | chore: start rebranding | |
| CHANGELOG.md | Bump CI to GHC 9.14.1 | |
| CODE_OF_CONDUCT.md | chore: start rebranding | |
| CONTRIBUTING.md | chore: slice off rest of CONTRIBUTING.md | |
| fix-whitespace.yaml | Add *.agda-lib to fix-whitespace.yaml | |
| flake.lock | nix: bump nixpkgs | |
| flake.nix | chore: more rebranding | |
| HACKING.md | chore: more rebranding | |
| LICENSE | chore: relicense, but properly | |
| Makefile | chore: remove examples/ | |
| Mikan.cabal | perf: skip per-worker recompilation avoidance | |
| README.md | Link to the announcement from the README | |
| weeder.toml | Remove global and local rewrite rules ( #68 ) | |
Mikan (Citrus unshiu) is a proof assistant for De Morgan cubical type theory, forked from Agda just before the release of version 2.9.0, and maintained by the 1Lab development team.
To learn more about the motivations for the fork and the direction of the project, read the Mikan announcement post, in particular the frequently asked questions.