-
Notifications
You must be signed in to change notification settings - Fork 0
HERMIT to HERMIT Shell
Ryan Scott edited this page Jun 4, 2015
·
107 revisions
| Meaning | |
|---|---|
| π€ | implemented in server |
| π | implemented in client |
| tested by hand, front to back, implies π€ & π | |
| β | In a unit test. The test may or may not run |
| HERMIT Type | HERMIT-shell Type | Notes |
|---|---|---|
RhsOfName |
Name |
|
TransformH :: * -> * -> * |
Transform |
|
LCoreTC |
||
LocalPathH |
LocalPath |
|
RewriteH |
Rewrite |
| Name | Type | Done |
|---|---|---|
alpha |
RewriteH LCore |
π€ π |
alpha-lam |
String -> RewriteH LCore |
|
alpha-lam |
RewriteH LCore |
|
alpha-case-binder |
String -> RewriteH LCore |
|
alpha-case-binder |
RewriteH LCore |
|
alpha-alt |
RewriteH LCore |
|
alpha-alt |
[String] -> RewriteH LCore |
|
alpha-case |
RewriteH LCore |
π€ π |
alpha-let |
[String] -> RewriteH LCore |
|
alpha-let |
RewriteH LCore |
|
alpha-top |
[String] -> RewriteH LCore |
|
alpha-top |
RewriteH LCore |
|
alpha-prog |
RewriteH LCore |
π€ π |
unshadow |
RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
unfold-basic-combinator |
RewriteH LCore |
π€ π |
simplify |
RewriteH LCore |
π€ π |
bash |
RewriteH LCore |
π€ π |
smash |
RewriteH LCore |
π€ π |
bash-extended-with |
[RewriteH LCore] -> RewriteH LCore |
|
smash-extended-with |
[RewriteH LCore] -> RewriteH LCore |
|
bash-debug |
RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
trace |
String -> RewriteH LCoreTC |
π€ π |
observe |
String -> RewriteH LCoreTC |
π€ π |
observe-failure |
String -> RewriteH LCoreTC -> RewriteH LCoreTC |
π€ π |
bracket |
String -> RewriteH LCoreTC -> RewriteH LCoreTC |
π€ π |
| Name | Type | Done |
|---|---|---|
fix-intro |
RewriteH LCore |
π€ π |
fix-computation-rule |
BiRewriteH LCore |
π€ π |
fix-rolling-rule |
BiRewriteH LCore |
π€ π |
fix-fusion-rule |
String -> String -> String -> RewriteH LCore -> RewriteH LCore -> RewriteH LCore -> BiRewriteH LCore |
π€ π |
fix-fusion-rule-unsafe |
String -> String -> String -> RewriteH LCore -> BiRewriteH LCore |
|
fix-fusion-rule-unsafe |
String -> String -> String -> BiRewriteH LCore |
| Name | Type | Done |
|---|---|---|
fold |
HermitName -> RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
static-arg |
RewriteH LCore |
π€ π |
static-arg-types |
RewriteH LCore |
π€ π |
static-arg-pos |
[Int] -> RewriteH LCore |
| Name | Type | Done |
|---|---|---|
deshadow-prog |
RewriteH LCore |
π€ π |
dezombify |
RewriteH LCore |
π€ π |
occurrence-analysis |
RewriteH LCore |
π€ π |
lint-expr |
TransformH LCoreTC String |
π€ π |
lint-module |
TransformH LCoreTC String |
π€ π |
lint |
TransformH LCoreTC String |
π€ π |
load-lemma-library |
HermitName -> TransformH LCore String |
|
load-lemma-library |
HermitName -> LemmaName -> TransformH LCore String |
|
inject-dependency |
String -> TransformH LCore () |
π€ π |
| Name | Type | Done |
|---|---|---|
induction |
HermitName -> RewriteH LCore |
π€ π |
prove-by-cases |
HermitName -> RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
inline |
RewriteH LCore |
|
inline |
OccurrenceName -> RewriteH LCore |
|
inline |
[String] -> RewriteH LCore |
|
inline-case-scrutinee |
RewriteH LCore |
π€ π |
inline-case-alternative |
RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
id |
RewriteH LCore |
|
id |
RewriteH LCoreTC |
|
success |
TransformH LCore () |
π€ π |
fail |
String -> RewriteH LCore |
π€ π |
<+ |
RewriteH LCore -> RewriteH LCore -> RewriteH LCore |
|
<+ |
TransformH LCore () -> TransformH LCore () -> TransformH LCore () |
|
>>> |
RewriteH LCore -> RewriteH LCore -> RewriteH LCore |
|
>>> |
BiRewriteH LCore -> BiRewriteH LCore -> BiRewriteH LCore |
|
>>> |
RewriteH LCoreTC -> RewriteH LCoreTC -> RewriteH LCoreTC |
|
>+> |
RewriteH LCore -> RewriteH LCore -> RewriteH LCore |
π€ π |
try |
RewriteH LCore -> RewriteH LCore |
π€ π |
repeat |
RewriteH LCore -> RewriteH LCore |
π€ π |
replicate |
Int -> RewriteH LCore -> RewriteH LCore |
π€ π |
all |
RewriteH LCore -> RewriteH LCore |
π€ π |
any |
RewriteH LCore -> RewriteH LCore |
π€ π |
one |
RewriteH LCore -> RewriteH LCore |
π€ π |
all-bu |
RewriteH LCore -> RewriteH LCore |
π€ π |
all-td |
RewriteH LCore -> RewriteH LCore |
π€ π |
all-du |
RewriteH LCore -> RewriteH LCore |
π€ π |
any-bu |
RewriteH LCore -> RewriteH LCore |
π€ π |
any-td |
RewriteH LCore -> RewriteH LCore |
π€ π |
any-du |
RewriteH LCore -> RewriteH LCore |
π€ π |
one-td |
RewriteH LCore -> RewriteH LCore |
π€ π |
one-bu |
RewriteH LCore -> RewriteH LCore |
π€ π |
prune-td |
RewriteH LCore -> RewriteH LCore |
π€ π |
innermost |
RewriteH LCore -> RewriteH LCore |
π€ π |
focus |
TransformH LCoreTC LocalPathH -> RewriteH LCoreTC -> RewriteH LCoreTC |
|
focus |
TransformH LCoreTC LocalPathH -> TransformH LCoreTC String -> TransformH LCoreTC String |
|
focus |
LocalPathH -> RewriteH LCoreTC -> RewriteH LCoreTC |
|
focus |
LocalPathH -> TransformH LCoreTC String -> TransformH LCoreTC String |
|
focus |
TransformH LCore LocalPathH -> RewriteH LCore -> RewriteH LCore |
|
focus |
TransformH LCore LocalPathH -> TransformH LCore String -> TransformH LCore String |
|
focus |
LocalPathH -> RewriteH LCore -> RewriteH LCore |
|
focus |
LocalPathH -> TransformH LCore String -> TransformH LCore String |
|
when |
TransformH LCore () -> RewriteH LCore -> RewriteH LCore |
π€ π |
not |
TransformH LCore () -> TransformH LCore () |
π€ π |
invert |
BiRewriteH LCore -> BiRewriteH LCore |
π€ π |
forward |
BiRewriteH LCore -> RewriteH LCore |
π€ π |
backward |
BiRewriteH LCore -> RewriteH LCore |
π€ π |
test |
RewriteH LCore -> TransformH LCore String |
π€ π |
any-call |
RewriteH LCore -> RewriteH LCore |
π€ π |
promote |
RewriteH LCore -> RewriteH LCoreTC |
π€ π |
extract |
RewriteH LCoreTC -> RewriteH LCore |
|
extract |
TransformH LCoreTC String -> TransformH LCore String |
|
between |
Int -> Int -> RewriteH LCoreTC -> RewriteH LCoreTC |
π€ π |
atPath |
TransformH LCore LocalPathH -> TransformH LCore LCore |
|
atPath |
TransformH LCoreTC LocalPathH -> TransformH LCoreTC LCoreTC |
|
atPath |
TransformH LCoreTC LocalPathH -> TransformH LCore LCore |
| Name | Type | Done |
|---|---|---|
nonrec-to-rec |
RewriteH LCore |
π€ π |
rec-to-nonrec |
RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
case-float-app |
RewriteH LCore |
π€ π |
case-float-arg |
RewriteH LCore -> RewriteH LCore |
|
case-float-arg |
CoreString -> RewriteH LCore -> RewriteH LCore |
|
case-float-arg-unsafe |
CoreString -> RewriteH LCore |
|
case-float-arg-unsafe |
LemmaName -> RewriteH LCore |
|
case-float-arg-lemma |
LemmaName -> RewriteH LCore |
π€ π |
case-float-case |
RewriteH LCore |
π€ π |
case-float-cast |
RewriteH LCore |
π€ π |
case-float-let |
RewriteH LCore |
π€ π |
case-float |
RewriteH LCore |
π€ π |
case-float-in |
RewriteH LCore |
π€ π |
case-float-in-args |
RewriteH LCore |
π€ π |
case-reduce |
RewriteH LCore |
π€ π |
case-reduce-datacon |
RewriteH LCore |
π€ π |
case-reduce-literal |
RewriteH LCore |
π€ π |
case-reduce-unfold |
RewriteH LCore |
π€ π |
case-split |
OccurrenceName -> RewriteH LCore |
|
case-split |
CoreString -> RewriteH LCore |
|
case-split-inline |
OccurrenceName -> RewriteH LCore |
|
case-split-inline |
CoreString -> RewriteH LCore |
|
case-intro-seq |
String -> RewriteH LCore |
π€ π |
case-elim-seq |
RewriteH LCore |
π€ π |
case-inline-alternative |
RewriteH LCore |
π€ π |
case-inline-scrutinee |
RewriteH LCore |
π€ π |
case-merge-alts |
RewriteH LCore |
π€ π |
case-merge-alts-with-binder |
RewriteH LCore |
π€ π |
case-elim |
RewriteH LCore |
π€ π |
case-elim-inline-scrutinee |
RewriteH LCore |
π€ π |
case-elim-merge-alts |
RewriteH LCore |
π€ π |
case-fold-binder |
RewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
let-subst |
RewriteH LCore |
|
let-subst-safe |
RewriteH LCore |
|
let-nonrec-subst-safe |
RewriteH LCore |
|
safe-let-subst-plus |
RewriteH LCore |
|
let-intro |
String -> RewriteH LCore |
|
let-intro-unfolding |
HermitName -> RewriteH LCore |
|
let-elim |
RewriteH LCore |
|
let-constructor-reuse |
RewriteH LCore |
|
let-float-app |
RewriteH LCore |
|
let-float-arg |
RewriteH LCore |
|
let-float-lam |
RewriteH LCore |
|
let-float-let |
RewriteH LCore |
|
let-float-case |
RewriteH LCore |
|
let-float-case-alt |
RewriteH LCore |
|
let-float-case-alt |
Int -> RewriteH LCore |
|
let-float-cast |
RewriteH LCore |
|
let-float-top |
RewriteH LCore |
|
let-float |
RewriteH LCore |
|
let-to-case |
RewriteH LCore |
|
let-to-case-unbox |
RewriteH LCore |
|
let-float-in |
RewriteH LCore |
|
let-float-in-app |
RewriteH LCore |
|
let-float-in-case |
RewriteH LCore |
|
let-float-in-lam |
RewriteH LCore |
|
reorder-lets |
[String] -> RewriteH LCore |
|
let-tuple |
String -> RewriteH LCore |
|
prog-bind-elim |
RewriteH LCore |
|
prog-bind-nonrec-elim |
RewriteH LCore |
|
prog-bind-rec-elim |
RewriteH LCore |
| Name | Type | Done |
|---|---|---|
beta-reduce |
RewriteH LCore |
|
beta-expand |
RewriteH LCore |
|
eta-reduce |
RewriteH LCore |
|
eta-expand |
String -> RewriteH LCore |
|
flatten-module |
RewriteH LCore |
|
flatten-program |
RewriteH LCore |
|
abstract |
OccurrenceName -> RewriteH LCore |
|
push |
String -> RewriteH LCore -> RewriteH LCore |
|
push-unsafe |
String -> RewriteH LCore |
| Name | Type | Done |
|---|---|---|
prog |
||
prog-head |
||
prog-tail |
||
nonrec-rhs |
||
rec-def |
||
def-rhs |
||
app-fun |
||
app-arg |
||
lam-body |
||
let-bind |
||
let-body |
||
case-expr |
||
case-type |
||
case-alt |
||
cast-expr |
||
cast-co |
||
tick-expr |
||
alt-rhs |
||
type |
||
coercion |
||
appTy-fun |
||
appTy-arg |
||
tyCon-arg |
||
fun-dom |
||
fun-cod |
||
forall-body |
||
refl-type |
||
coCon-arg |
||
appCo-fun |
||
appCo-arg |
||
coForall-body |
||
axiom-inst |
||
unsafe-left |
||
unsafe-right |
||
sym-co |
||
trans-left |
||
trans-right |
||
nth-co |
||
inst-co |
||
inst-type |
||
lr-co |
||
forall-body |
||
conj-lhs |
||
conj-rhs |
||
disj-lhs |
||
disj-rhs |
||
antecedent |
||
consequent |
||
eq-lhs |
||
eq-rhs |
| Name | Type | Done |
|---|---|---|
rhs-of |
RhsOfName -> TransformH LCoreTC LocalPathH |
|
binding-group-of |
String -> TransformH LCoreTC LocalPathH |
|
binding-of |
BindingName -> TransformH LCoreTC LocalPathH |
β |
occurrence-of |
OccurrenceName -> TransformH LCoreTC LocalPathH |
|
application-of |
OccurrenceName -> TransformH LCoreTC LocalPathH |
|
consider |
Considerable -> TransformH LCore LocalPathH |
|
arg |
Int -> TransformH LCore LocalPathH |
|
lams-body |
TransformH LCore LocalPathH |
|
lets-body |
TransformH LCore LocalPathH |
|
prog-end |
TransformH LCore LocalPathH |
|
parent-of |
TransformH LCore LocalPathH -> TransformH LCore LocalPathH |
|
parent-of |
TransformH LCoreTC LocalPathH -> TransformH LCoreTC LocalPathH |
| Name | Type | Done |
|---|---|---|
var |
String -> TransformH LCore () |
|
nonrec-intro |
String -> CoreString -> RewriteH LCore |
| Name | Type | Done |
|---|---|---|
info |
TransformH LCoreTC String |
|
compare-bound-ids |
HermitName -> HermitName -> TransformH LCoreTC () |
|
compare-core-at |
TransformH LCoreTC LocalPathH -> TransformH LCoreTC LocalPathH -> TransformH LCoreTC () |
| Name | Type | Done |
|---|---|---|
retraction |
CoreString -> CoreString -> RewriteH LCore -> BiRewriteH LCore |
|
retraction-unsafe |
CoreString -> CoreString -> BiRewriteH LCore |
|
unshadow-quantified |
RewriteH LCoreTC |
|
merge-quantifiers |
RewriteH LCore |
|
float-left |
RewriteH LCore |
|
float-right |
RewriteH LCore |
|
conjunct |
TransformH LCore () |
|
disjunct |
TransformH LCore () |
|
imply |
TransformH LCore () |
|
lemma-birewrite |
LemmaName -> BiRewriteH LCore |
|
lemma-forward |
LemmaName -> RewriteH LCore |
|
lemma-backward |
LemmaName -> RewriteH LCore |
|
lemma-consequent |
LemmaName -> RewriteH LCore |
|
lemma-consequent-birewrite |
LemmaName -> BiRewriteH LCore |
|
lemma-lhs-intro |
LemmaName -> RewriteH LCore |
|
lemma-rhs-intro |
LemmaName -> RewriteH LCore |
|
inst-lemma |
TransformH LCore () |
|
inst-dictionaries |
RewriteH LCore |
|
abstract-forall |
String -> CoreString -> RewriteH LCore |
|
abstract-forall |
String -> RewriteH LCore -> RewriteH LCore |
|
copy-lemma |
TransformH LCore () |
|
modify-lemma |
LemmaName -> RewriteH LCore -> TransformH LCore () |
|
query-lemma |
LemmaName -> TransformH LCore String -> TransformH LCore String |
|
show-lemma |
PrettyPrinter -> LemmaName -> PrettyH LCore |
|
show-lemmas |
PrettyPrinter -> LemmaName -> PrettyH LCore |
|
show-lemmas |
PrettyPrinter -> PrettyH LCore |
|
extensionality |
String -> RewriteH LCore |
|
extensionality |
RewriteH LCore |
|
lhs |
TransformH LCore String -> TransformH LCore String |
|
lhs |
RewriteH LCore -> RewriteH LCore |
|
rhs |
TransformH LCore String -> TransformH LCore String |
|
rhs |
RewriteH LCore -> RewriteH LCore |
|
both |
RewriteH LCore -> RewriteH LCore |
|
both |
TransformH LCore String -> TransformH LCore String |
|
reflexivity |
RewriteH LCore |
|
simplify-proof |
RewriteH LCore |
|
split-antecedent |
RewriteH LCore |
|
lemma |
LemmaName -> RewriteH LCore |
|
lemma-unsafe |
LemmaName -> RewriteH LCore |
| Name | Type | Done |
|---|---|---|
remember |
LemmaName -> TransformH LCore () |
|
unfold-remembered |
LemmaName -> RewriteH LCore |
|
fold-remembered |
LemmaName -> RewriteH LCore |
|
fold-any-remembered |
RewriteH LCore |
|
show-remembered |
PrettyPrinter -> PrettyH LCore |
| Name | Type | Done |
|---|---|---|
show-rules |
TransformH LCoreTC String |
|
show-rule |
PrettyPrinter -> RuleName -> TransformH LCoreTC DocH |
|
fold-rule |
RuleName -> RewriteH LCore |
|
fold-rules |
[RuleName] -> RewriteH LCore |
|
unfold-rule |
RuleName -> RewriteH LCore |
|
unfold-rule-unsafe |
RuleName -> RewriteH LCore |
|
unfold-rules |
[RuleName] -> RewriteH LCore |
|
unfold-rules-unsafe |
[RuleName] -> RewriteH LCore |
|
rule-to-lemma |
PrettyPrinter -> RuleName -> TransformH LCore DocH |
|
spec-constr |
RewriteH LCore |
|
specialise |
RewriteH LCore |
| Name | Type | Done |
|---|---|---|
replace-current-expr-with-undefined |
RewriteH LCore |
|
replace-id-with-undefined |
HermitName -> RewriteH LCore |
|
error-to-undefined |
RewriteH LCore |
|
is-undefined-val |
TransformH LCore () |
|
undefined-expr |
RewriteH LCore |
|
undefined-app |
RewriteH LCore |
|
undefined-lam |
RewriteH LCore |
|
undefined-let |
RewriteH LCore |
|
undefined-case |
RewriteH LCore |
|
undefined-cast |
RewriteH LCore |
|
undefined-tick |
RewriteH LCore |
| Name | Type | Done |
|---|---|---|
beta-reduce-plus |
RewriteH LCore |
|
unfold |
RewriteH LCore |
|
unfold |
OccurrenceName -> RewriteH LCore |
|
unfold |
[OccurrenceName] -> RewriteH LCore |
|
unfold-saturated |
RewriteH LCore |
|
specialize |
RewriteH LCore |
|
unsafe-replace |
CoreString -> RewriteH LCore |
| Name | Type | Done |
|---|---|---|
intro-ww-assumption-A |
||
intro-ww-assumption-B |
||
intro-ww-assumption-C |
||
split-1-beta |
CoreString -> RewriteH LCore |
|
split-2-beta |
CoreString -> RewriteH LCore |
| Name | Type | Done |
|---|---|---|
ww-factorisation-unsafe |
||
ww-split-unsafe |
||
ww-assumption-B |
||
ww-assumption-A-unsafe |
||
ww-assumption-C-unsafe |
||
ww-AssA-to-AssB |
RewriteH LCore -> RewriteH LCore |
|
ww-AssB-to-AssC |
RewriteH LCore -> RewriteH LCore |
|
ww-AssA-to-AssC |
RewriteH LCore -> RewriteH LCore |
|
ww-generate-fusion |
RewriteH LCore -> TransformH LCore () |
|
ww-generate-fusion-unsafe |
TransformH LCore () |
|
ww-fusion |
BiRewriteH LCore |
| Name | Type | Done |
|---|---|---|
ww-result-factorisation |
String -> String -> RewriteH LCore -> BiRewriteH LCore |
π€ π |
ww-result-factorisation-unsafe |
String -> String -> BiRewriteH LCore |
π€ π |
ww-split-static-arg-unsafe |
π€ π | |
ww-result-split |
π€ π | |
ww-result-split-unsafe |
π€ π | |
ww-result-split-static-arg |
π€ π | |
ww-result-split-static-arg-unsafe |
π€ π | |
ww-result-assumption-A |
π€ π | |
ww-result-assumption-B |
π€ π | |
ww-result-assumption-C |
π€ π | |
ww-result-assumption-A-unsafe |
π€ π | |
ww-result-assumption-B-unsafe |
π€ π | |
ww-result-assumption-C-unsafe |
π€ π | |
ww-result-AssA-to-AssB |
RewriteH LCore -> RewriteH LCore |
π€ π |
ww-result-AssB-to-AssC |
RewriteH LCore -> RewriteH LCore |
π€ π |
ww-result-AssA-to-AssC |
RewriteH LCore -> RewriteH LCore |
π€ π |
ww-result-generate-fusion |
RewriteH LCore -> TransformH LCore () |
π€ π |
ww-result-generate-fusion-unsafe |
TransformH LCore () |
π€ π |
ww-result-fusion |
BiRewriteH LCore |
π€ π |
| Name | Type | Done |
|---|---|---|
ast |
| Name | Type | Done |
|---|---|---|
clean |
| Name | Type | Done |
|---|---|---|
ghc |
| Name | Type | Done |
|---|---|---|
help |
||
help |
| Name | Type | Done |
|---|---|---|
resume |
ShellEffect |
π€ π |
abort |
ShellEffect |
π€ π |
continue |
ShellEffect |
π€ π |
gc |
||
gc |
||
display |
||
up |
KernelEffect |
π€ π |
navigate |
||
command-line |
||
set-window |
ShellEffect |
π€ π |
top |
KernelEffect |
π€ π |
log |
QueryFun |
π€ π |
back |
ShellEffect |
π€ π |
step |
ShellEffect |
π€ π |
goto |
||
goto |
||
tag |
String -> ShellEffect |
π€ π |
diff |
AST -> AST -> QueryFun |
π€ π |
set-pp-diffonly |
Bool -> ShellEffect |
π€ π |
set-fail-hard |
Bool -> ShellEffect |
π€ π |
set-auto-corelint |
Bool -> ShellEffect |
π€ π |
set-pp |
String -> ShellEffect |
π€ π |
set-pp-renderer |
||
set-pp-renderer |
||
dump |
||
dump |
||
dump-lemma |
LemmaName -> FilePath -> PrettyPrinter -> String -> Int -> TransformH LCoreTC () |
|
dump-lemma |
PrettyPrinter -> LemmaName -> FilePath -> String -> Int -> TransformH LCoreTC () |
|
set-pp-width |
Int -> ShellEffect |
π€ π |
set-pp-type |
PpType -> ShellEffect |
π€ π |
set-pp-coercion |
PpType -> ShellEffect |
π€ π |
set-pp-uniques |
Bool -> ShellEffect |
π€ π |
{ |
KernelEffect |
π |
} |
KernelEffect |
π |
load |
String -> String -> ScriptEffect |
π€ π |
load-and-run |
String -> ScriptEffect |
π€ π |
save |
String -> ScriptEffect |
π€ π |
save-verbose |
String -> ScriptEffect |
π€ π |
save-script |
String -> String -> ScriptEffect |
π€ π |
load-as-rewrite |
String -> String -> ScriptEffect |
π€ π |
script-to-rewrite |
π€ π | |
define-script |
π€ π | |
define-rewrite |
π€ π | |
run-script |
π€ π | |
display-scripts |
π€ π | |
stop-script |
π€ π | |
possible-rewrites |
CommandLineState -> TransformH LCore String |
| Name | Type | Done |
|---|---|---|
prove-lemma |
||
end-proof |
||
end-case |
||
assume |