Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
{
"terms": {
"name": "judge_t",
"types": [
{
"type_name": "var_t",
"constrs": [
{
"constr_name": "V",
"args": [ { "arg_name": "x1", "arg_type": [ "StringT" ] } ],
"draw": [ [ "Arg", "x1" ] ]
}
]
},
{
"type_name": "term_t",
"constrs": [
{
"constr_name": "Var",
"args": [ { "arg_name": "x1", "arg_type": [ "RecT", "var_t" ] } ],
"draw": [ [ "Arg", "x1" ] ]
},
{
"constr_name": "Fun",
"args": [
{ "arg_name": "x1", "arg_type": [ "RecT", "var_t" ] },
{ "arg_name": "e2", "arg_type": [ "RecT", "term_t" ] }
],
"draw": [
[ "Str", "(λ" ],
[ "Arg", "x1" ],
[ "Str", ". " ],
[ "Arg", "e2" ],
[ "Str", ")" ]
]
},
{
"constr_name": "App",
"args": [
{ "arg_name": "e1", "arg_type": [ "RecT", "term_t" ] },
{ "arg_name": "e2", "arg_type": [ "RecT", "term_t" ] }
],
"draw": [
[ "Str", "(" ],
[ "Arg", "e1" ],
[ "Str", " @ " ],
[ "Arg", "e2" ],
[ "Str", ")" ]
]
},
{
"constr_name": "Shift",
"args": [
{ "arg_name": "k", "arg_type": [ "RecT", "var_t" ] },
{ "arg_name": "e", "arg_type": [ "RecT", "term_t" ] }
],
"draw": [
[ "Str", "(S" ],
[ "Arg", "k" ],
[ "Str", ". " ],
[ "Arg", "e" ],
[ "Str", ")" ]
]
},
{
"constr_name": "Reset",
"args": [ { "arg_name": "e", "arg_type": [ "RecT", "term_t" ] } ],
"draw": [ [ "Str", "<" ], [ "Arg", "e" ], [ "Str", ">" ] ]
}
]
},
{
"type_name": "tvar_t",
"constrs": [
{
"constr_name": "Tv",
"args": [ { "arg_name": "t1", "arg_type": [ "StringT" ] } ],
"draw": [ [ "Arg", "t1" ] ]
}
]
},
{
"type_name": "type_t",
"constrs": [
{ "constr_name": "Int", "args": [], "draw": [ [ "Str", "int" ] ] },
{
"constr_name": "Tvar",
"args": [
{ "arg_name": "t1", "arg_type": [ "RecT", "tvar_t" ] }
],
"draw": [ [ "Arg", "t1" ] ]
},
{
"constr_name": "Arrow",
"args": [
{ "arg_name": "t1", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "t2", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "t3", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "t4", "arg_type": [ "RecT", "type_t" ] }
],
"draw": [
[ "Str", "(" ],
[ "Arg", "t1" ],
[ "Str", " → " ],
[ "Arg", "t2" ],
[ "Str", " @[" ],
[ "Arg", "t3" ],
[ "Str", ", " ],
[ "Arg", "t4" ],
[ "Str", "])" ]
]
}
]
},
{
"type_name": "env_t",
"constrs": [
{ "constr_name": "Empty", "args": [], "draw": [ [ "Str", "[]" ] ] },
{
"constr_name": "Cons",
"args": [
{ "arg_name": "x1", "arg_type": [ "RecT", "var_t" ] },
{ "arg_name": "t2", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "e3", "arg_type": [ "RecT", "env_t" ] }
],
"draw": [
[ "Arg", "x1" ],
[ "Str", " :: " ],
[ "Arg", "t2" ],
[ "Str", ", " ],
[ "Arg", "e3" ]
]
}
]
},
{
"type_name": "judge_t",
"constrs": [
{
"constr_name": "Judge",
"args": [
{ "arg_name": "env", "arg_type": [ "RecT", "env_t" ] },
{ "arg_name": "term", "arg_type": [ "RecT", "term_t" ] },
{ "arg_name": "type", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "alpha", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "beta", "arg_type": [ "RecT", "type_t" ] }
],
"draw": [
[ "Arg", "env" ],
[ "Str", " |- " ],
[ "Arg", "term" ],
[ "Str", " : " ],
[ "Arg", "type" ],
[ "Str", " @[" ],
[ "Arg", "alpha" ],
[ "Str", ", " ],
[ "Arg", "beta" ],
[ "Str", "]" ]
]
},
{
"constr_name": "Equal",
"args": [
{ "arg_name": "t1", "arg_type": [ "RecT", "type_t" ] },
{ "arg_name": "t2", "arg_type": [ "RecT", "type_t" ] }
],
"draw": [ [ "Arg", "t1" ], [ "Str", " = " ], [ "Arg", "t2" ] ]
}
]
}
]
},
"infers": [
{
"name": "Tzero",
"rule": [
"A",
{
"axiom": [
"V",
"judge_t",
"Judge",
[
[
"V",
"env_t",
"Cons",
[
[ "M", "var_t", "x" ],
[ "M", "type_t", "t" ],
[ "M", "env_t", "Γ" ]
]
],
[ "V", "term_t", "Var", [ [ "M", "var_t", "x" ] ] ],
[ "M", "type_t", "t" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "α" ]
]
]
}
]
},
{
"name": "Tsucc",
"rule": [
"I",
{
"conclusion": [
"V",
"judge_t",
"Judge",
[
[
"V",
"env_t",
"Cons",
[
[ "M", "var_t", "x" ],
[ "M", "type_t", "u" ],
[ "M", "env_t", "Γ" ]
]
],
[ "V", "term_t", "Var", [ [ "M", "var_t", "y" ] ] ],
[ "M", "type_t", "t" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "α" ]
]
],
"premises": [
[
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[ "V", "term_t", "Var", [ [ "M", "var_t", "y" ] ] ],
[ "M", "type_t", "t" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "α" ]
]
]
]
}
]
},
{
"name": "Tfun",
"rule": [
"I",
{
"conclusion": [
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[
"V",
"term_t",
"Fun",
[ [ "M", "var_t", "x" ], [ "M", "term_t", "e" ] ]
],
[
"V",
"type_t",
"Arrow",
[
[ "M", "type_t", "t2" ],
[ "M", "type_t", "t1" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "β" ]
]
],
[ "M", "type_t", "γ" ],
[ "M", "type_t", "γ" ]
]
],
"premises": [
[
"V",
"judge_t",
"Judge",
[
[
"V",
"env_t",
"Cons",
[
[ "M", "var_t", "x" ],
[ "M", "type_t", "t2" ],
[ "M", "env_t", "Γ" ]
]
],
[ "M", "term_t", "e" ],
[ "M", "type_t", "t1" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "β" ]
]
]
]
}
]
},
{
"name": "Tapp",
"rule": [
"I",
{
"conclusion": [
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[
"V",
"term_t",
"App",
[ [ "M", "term_t", "e1" ], [ "M", "term_t", "e2" ] ]
],
[ "M", "type_t", "t1" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "δ" ]
]
],
"premises": [
[
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[ "M", "term_t", "e1" ],
[
"V",
"type_t",
"Arrow",
[
[ "M", "type_t", "t2" ],
[ "M", "type_t", "t1" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "β" ]
]
],
[ "M", "type_t", "γ" ],
[ "M", "type_t", "δ" ]
]
],
[
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[ "M", "term_t", "e2" ],
[ "M", "type_t", "t2" ],
[ "M", "type_t", "β" ],
[ "M", "type_t", "γ" ]
]
]
]
}
]
},
{
"name": "Tshift",
"rule": [
"I",
{
"conclusion": [
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[
"V",
"term_t",
"Shift",
[ [ "M", "var_t", "k" ], [ "M", "term_t", "e" ] ]
],
[ "M", "type_t", "t" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "δ" ]
]
],
"premises": [
[
"V",
"judge_t",
"Judge",
[
[
"V",
"env_t",
"Cons",
[
[ "M", "var_t", "k" ],
[
"V",
"type_t",
"Arrow",
[
[ "M", "type_t", "t" ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "γ" ],
[ "M", "type_t", "γ" ]
]
],
[ "M", "env_t", "Γ" ]
]
],
[ "M", "term_t", "e" ],
[ "M", "type_t", "β" ],
[ "M", "type_t", "β" ],
[ "M", "type_t", "δ" ]
]
]
]
}
]
},
{
"name": "Treset",
"rule": [
"I",
{
"conclusion": [
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[ "V", "term_t", "Reset", [ [ "M", "term_t", "e" ] ] ],
[ "M", "type_t", "α" ],
[ "M", "type_t", "β" ],
[ "M", "type_t", "β" ]
]
],
"premises": [
[
"V",
"judge_t",
"Judge",
[
[ "M", "env_t", "Γ" ],
[ "M", "term_t", "e" ],
[ "M", "type_t", "t" ],
[ "M", "type_t", "t" ],
[ "M", "type_t", "α" ]
]
]
]
}
]
},
{
"name": "Tequal",
"rule": [
"A",
{
"axiom": [
"V",
"judge_t",
"Equal",
[ [ "M", "type_t", "t" ], [ "M", "type_t", "t" ] ]
]
}
]
}
],
"input" : [ "M", "type_t", "t" ]
}