var N=null,E="",T="t",U="u",searchIndex={};
var R=["pattern","expression","Declaration","Lambda","Constructor","Application","Second","telescoperc","clone","Neutral","minitt::ast","destruct","telescope","string","declaration","$\\textbf{1}$","casetree","read_back","minitt::check","Some minor helper specialized from other functions.","context","liftstate","$$ \\frac{\\rho,\\Gamma\\vdash_l A \\quad \\Gamma\\vdash…","formatter","fmterror","result","minitt","prefix_parameters","to_owned","clone_into","try_from","try_into","borrow_mut","to_string","type_id","borrow","typeid","minitt::check::read_back","minitt::check::tcm","minitt::parser","$$ \\begin{alignedat}{2} & \\textsf{R}_i (\\lambda \\ f) &&=…","assert_receiver_is_total_eq","option","ordering","partial_cmp","genericneutral","generictelescope","genericcase","normalexpression","AnonymousValue","GenericCase","Expression","GenericNeutral","GenericTelescope","NormalExpression","ReadBack","MiniParser"];

searchIndex["minitt"]={"doc":"Rust implementation of Mini-TT, a simple dependently-typed…","i":[[0,"ast",R[26],"Syntax: term, expression, context.",N,N],[3,R[49],R[10],"Just a wrapper for a value but does not do `Eq`…",N,N],[12,"internal",E,E,0,N],[3,"Typed",E,"$p:A$, Pattern with type explicitly specified. This is…",N,N],[12,R[0],E,E,1,N],[12,R[1],E,E,1,N],[3,R[2],E,"`Decl` in Mini-TT. $D ::= p:A=M\\ |\\ \\textsf{rec}\\ p:A=M$",N,N],[12,R[0],E,"$p$ in syntax.",2,N],[12,R[27],E,"This is an extension -- declarations can be prefixed with…",2,N],[12,"signature",E,"$A$ in syntax.",2,N],[12,"body",E,"$M$ in syntax.",2,N],[12,"is_recursive",E,"Whether the $\\textsf{rec}$ is present.",2,N],[3,R[50],E,"Generic definition for three kinds of case trees",N,N],[12,R[1],E,E,3,N],[12,R[20],E,E,3,N],[4,R[51],E,"`Exp` in Mini-TT. Expression language for Mini-TT.",N,N],[13,"Unit",E,"$0$",4,N],[13,"One",E,R[15],4,N],[13,"Type",E,"$\\textsf{U}$, `Type`. Extended with levels.",4,N],[13,"Void",E,"Empty file",4,N],[13,"Var",E,"$x$, `bla`",4,N],[13,"Sum",E,"$\\textsf{Sum} \\ S$, `Sum { Bla x }`",4,N],[13,"Split",E,"$\\textsf{fun} \\ S$, `split { Bla x => y }`",4,N],[13,"Merge",E,"This is an extension to Mini-TT, `A ++ B`.",4,N],[13,"Pi",E,"$\\Pi p : A. B$ or $A \\rightarrow B$, `\\Pi a: b. c` or `A…",4,N],[13,"Sigma",E,"$\\Sigma p : A. B$ or $A \\times B$, `\\Sigma a: b. c` or `A…",4,N],[13,R[3],E,"$\\lambda p. M$, `\\lambda a. c`, the optional value is the…",4,N],[13,"First",E,"$M.1$, `bla.1`",4,N],[13,R[6],E,"$M.2$, `bla.2`",4,N],[13,R[5],E,"$M \\ N$, `f a`",4,N],[13,"Pair",E,"$M, N$, `a, b`",4,N],[13,R[4],E,"$\\textsf{c}\\ M$, `Cons a`",4,N],[13,"Constant",E,"`const a = b`, this is an extension: a declaration whose…",4,N],[13,R[2],E,"$D; M$, `let bla` or `rec bla`",4,N],[4,"Value",E,"`Val` in Mini-TT, value term. Terms are either of…",N,N],[13,R[3],E,"$\\lambda\\ f$. Canonical form: lambda abstraction.",5,N],[13,"Unit",E,"$0$. Canonical form: unit instance.",5,N],[13,"One",E,"$\\textbf{1}$. Canonical form: unit type.",5,N],[13,"Type",E,"$\\textsf{U}$. Canonical form: type universe.",5,N],[13,"Pi",E,"$\\Pi \\ t\\ g$. Canonical form: pi type (type for dependent…",5,N],[13,"Sigma",E,"$\\Sigma \\ t\\ g$. Canonical form: sigma type (type for…",5,N],[13,"Pair",E,"$u,v$. Canonical form: Pair value (value for sigma).",5,N],[13,R[4],E,"$c \\ t$. Canonical form: call to a constructor.",5,N],[13,"Split",E,"$\\textsf{fun}\\ s$. Canonical form: case-split.",5,N],[13,"Sum",E,"$\\textsf{Sum}\\ s$. Canonical form: sum type.",5,N],[13,R[9],E,"$[k]$. Neutral form.",5,N],[4,R[52],E,"Generic definition for two kinds of neutral terms.",N,N],[13,"Generated",E,"$\\textsf{x}_n$. Neutral form: stuck on a free variable.",6,N],[13,R[5],E,"$k\\ v$. Neutral form: stuck on applying on a free variable.",6,N],[13,"First",E,"$k.1$. Neutral form: stuck on trying to find the first…",6,N],[13,R[6],E,"$k.2$. Neutral form: stuck on trying to find the second…",6,N],[13,"Split",E,"$s\\ k$. Neutral form: stuck on trying to case-split a free…",6,N],[4,"Pattern",E,"`Patt` in Mini-TT.",N,N],[13,"Pair",E,"$p,p$, Pair pattern. This sounds like trivial and useless,…",7,N],[13,"Unit",E,"_, Unit pattern, used for introducing anonymous definitions.",7,N],[13,"Var",E,"$x$, Variable name pattern, the most typical pattern.",7,N],[4,R[53],E,"Generic definition for two kinds of telescopes. `Value`…",N,N],[13,"Nil",E,"$()$, Empty telescope.",8,N],[13,"UpDec",E,"$\\rho, p=D$, In Mini-TT, checked declarations are put…",8,N],[13,"UpVar",E,"$\\rho, p=v$, Usually a local variable, introduced in your…",8,N],[4,"Closure",E,"`Clos` in Mini-TT.",N,N],[13,"Abstraction",E,"$\\lang \\lambda p.M,\\rho \\rang$, `cl` in Mini-TT. Closure…",9,N],[13,"Value",E,"This is not present in Mini-TT, thus an extension.…",9,N],[13,"Choice",E,"$f \\circ c$ `clCmp` in Mini-TT. Closure that was inside of…",9,N],[5,"branch_to_righted",E,"This function name is mysterious, but I failed to find a…",N,[[["branch"],[R[12]]],[R[16]]]],[5,"up_var_rc",E,"Just for simplifying constructing an `Rc`. $\\rho, p=v$",N,[[[R[7]],[R[8]],[R[0]]],[[R[7]],[R[8]]]]],[5,"up_dec_rc",E,"Just for simplifying constructing an `Rc`. $\\rho, p=D$",N,[[[R[7]],[R[8]],[R[14]]],[[R[7]],[R[8]]]]],[5,"nil_rc",E,"Because we can't `impl` a `Default` for `Rc`. $()$",N,[[],[[R[7]],[R[8]]]]],[6,"Level",E,E,N,N],[6,"GenericBranch",E,"$S(M) ::= ()\\ |\\ (\\textsf{c}\\ M, S)$",N,N],[6,"Branch",E,"$S ::= ()\\ |\\ (\\textsf{c}\\ M, S)$, Pattern matching branch.",N,N],[6,R[9],E,"$k ::= k(v)$. `Neut` in Mini-TT, neutral value.",N,N],[6,"TelescopeRc",E,E,N,N],[6,"Telescope",E,"$\\rho ::= \\rho(v)$ `Rho` in Mini-TT, dependent context.",N,N],[6,"Case",E,"One single case in case trees.",N,N],[6,"CaseTree",E,"$\\lang S,\\rho \\rang$, `SClos` in Mini-TT. Case tree.",N,N],[11,"new",E,E,0,[[["value"]],["self"]]],[11,"some",E,E,0,[[["value"]],[R[42]]]],[11,"new",E,E,1,[[[R[0]],[R[1]]],["self"]]],[11,R[11],E,E,1,[[]]],[11,"new",E,R[4],2,[[[R[0]],["vec",["typed"]],[R[1]],["bool"],["typed"]],["self"]]],[11,"simple",E,"Non-recursive declarations",2,[[[R[0]],["vec",["typed"]],[R[1]],["typed"]],["self"]]],[11,"recursive",E,"Recursive declarations",2,[[[R[0]],["vec",["typed"]],[R[1]],["typed"]],["self"]]],[11,"new",E,E,3,[[[R[7]],[R[1]]],["self"]]],[11,"reduce_to_value",E,E,3,[[],["value"]]],[0,"eval",R[26],"Reduction: eval and eval's friends.",N,N],[11,"contains",R[10],"`inPat` in Mini-TT.",7,[[["self"],["str"]],["bool"]]],[11,"project",E,"$$ \\begin{alignedat}{2} & \\textsf{proj}^x_x(v) &&= v \\\\ &…",7,[[["self"],["str"],["value"]],[["value"],[R[13]],[R[25],["value",R[13]]]]]],[11,"resolve",E,"$$ \\textnormal{If} \\ x \\ \\textnormal{is\\ in}\\ p, \\\\…",8,[[["self"],["str"]],[["value"],[R[13]],[R[25],["value",R[13]]]]]],[11,"instantiate",E,"$$ \\begin{alignedat}{2} & \\textsf{inst} \\lang \\lambda p.M,…",9,[[["value"]],["value"]]],[11,"level_safe",E,"This is not present in Mini-TT. Calculate the level of…",5,[[["self"]],[[R[42],["level"]],["level"]]]],[11,"level",E,"This is not present in Mini-TT. This is called `levelView`…",5,[[["self"]],["u32"]]],[11,"first",E,"$$ \\begin{alignedat}{2} & (u,v).1 &&= u \\\\ & [k].1 &&=…",5,[[],["self"]]],[11,"second",E,"$$ \\begin{alignedat}{2} & (u,v).2 &&= v \\\\ & [k].2 &&=…",5,[[],["self"]]],[11,R[11],E,"Combination of `vsnd` and `vfst` in Mini-TT. Run `.2` on a…",5,[[]]],[11,"apply",E,"$$ \\begin{alignedat}{2} & \\textsf{app} (\\lambda \\ f) v &&=…",5,[[],["self"]]],[11,"eval_to_sum",E,"This is not present in Mini-TT. Return `true` if `self` is…",4,[[[R[12]]],[[R[42],["vec"]],["vec",[R[13]]]]]],[11,"eval",E,"$$ \\begin{alignedat}{2} & ⟦ \\lambda p.M ⟧ \\rho &&= \\lang…",4,[[[R[12]]],["value"]]],[0,"check",R[26],"Type checking: everything related to type-checking.",N,N],[5,"check_main",R[18],"`checkMain` in Mini-TT.",N,[[[R[1]]],[["tcm",["tcs"]],["tcs"]]]],[5,"check_contextual",E,"For REPL: check an expression under an existing context",N,[[["tcs"],[R[1]]],[["tcs"],["tcm",["tcs"]]]]],[5,"check_infer_contextual",E,"For REPL: infer the type of an expression under an…",N,[[["tcs"],[R[1]]],[["tcm",["value"]],["value"]]]],[5,"check_declaration_main",E,"Similar to `checkMain` in Mini-TT, but for a declaration.",N,[[[R[14]]],[["tcm",["tcs"]],["tcs"]]]],[0,R[17],E,"Read back: read back functions and normal form definitions.",N,N],[4,R[54],R[37],"`NExp` in Mini-TT, normal form expressions. Deriving `Eq`…",N,N],[13,R[3],E,"$\\lambda \\textsf{x}_i\\  .\\ E$",10,N],[13,"Pair",E,"$E_1, E_2$",10,N],[13,"Unit",E,"$0$",10,N],[13,"One",E,R[15],10,N],[13,"Type",E,"$\\textsf{U}$",10,N],[13,"Pi",E,"$\\Pi \\textsf{x}_i:E_1.E_2$",10,N],[13,"Sigma",E,"$\\Sigma \\textsf{x}_i:E_1.E_2$",10,N],[13,R[4],E,"$c\\ E$",10,N],[13,"Split",E,"$\\textsf{fun}\\lang S,\\alpha \\rang$",10,N],[13,"Sum",E,"$\\textsf{Sum}\\lang S,\\alpha \\rang$",10,N],[13,R[9],E,"$[K]$",10,N],[5,"generate_value",E,"`genV` in Mini-TT.",N,[[["u32"]],["value"]]],[5,"read_back_branches",E,E,N,[[["u32"],[R[16]]],["normalcasetree"]]],[6,"NormalTelescope",E,"`NRho` in Mini-TT, normal form telescopes (contexts).",N,N],[6,"NormalCase",E,E,N,N],[6,"NormalCaseTree",E,"`NSClos` in Mini-TT, normal form closures.",N,N],[6,"NormalNeutral",E,"`NNeut` in Mini-TT, normal form neutral values.",N,N],[8,R[55],E,"Since all of `Value`, `Neutral` and `Telescope` have a…",N,N],[16,"NormalForm",E,"Corresponding normal form type for the read-backable…",11,N],[10,R[17],E,R[40],11,[[["u32"]]]],[11,"read_back_please",E,"Sometimes you don't want to pass an argument, and let me…",11,[[]]],[11,"normal",E,"`eqNf` in Mini-TT, but returning normal forms for error…",11,[[["u32"]]]],[0,"tcm",R[18],"Type-Checking Monad: context, state and error.",N,N],[3,"TCS",R[38],"Type-Checking State , not \"Theoretical Computer Science\".…",N,N],[12,"gamma",E,E,12,N],[12,R[20],E,E,12,N],[4,"TCE",E,"Type-Checking Error.",N,N],[13,"Textual",E,E,13,N],[13,"UpdateGammaFailed",E,E,13,N],[13,"CannotInfer",E,E,13,N],[13,"UnresolvedName",E,E,13,N],[13,"InvalidConstructor",E,E,13,N],[13,"MissingCase",E,E,13,N],[13,"UnexpectedCases",E,E,13,N],[13,"Unreachable",E,"Reaching somewhere that is not expected to reach.",13,N],[13,"WantSumBut",E,E,13,N],[13,"DuplicateBranch",E,E,13,N],[13,"WantSigmaBut",E,E,13,N],[13,"WantPiBut",E,"We can get the argument of application here, to better…",13,N],[13,"TypeMismatch",E,"Actually first value, expected second value.",13,N],[13,"NotTypeType",E,"Want a type's type, but unfortunately it's not.",13,N],[13,"LevelMismatch",E,"Actually first level, expected second level.",13,N],[13,"ReadBackTypeMismatch",E,"First argument is inferred value, second is expected.",13,N],[13,"Located",E,E,13,N],[5,"update_gamma",E,"Move version of `upG` in Mini-TT. $$ \\frac{}{\\Gamma \\vdash…",N,[[[R[0]],["value"],["gamma"]],[["tcm",["gamma"]],["gamma"]]]],[5,"update_gamma_borrow",E,"Borrow version of `upG` in Mini-TT.",N,[[[R[0]],["value"],["value"],["gamma"]],[["tcm",["gamma"]],["gamma"]]]],[5,"update_gamma_lazy",E,"Lazy version of `upG` in Mini-TT.",N,[[[R[0]],["value"],["gamma"]],[["tcm",["gamma"]],["gamma"]]]],[5,"update_gamma_by_pair",E,R[19],N,[[["closure"],["value"],["gamma"],["box"]],[["tcm",["gamma"]],["gamma"]]]],[5,"update_gamma_by_var",E,R[19],N,[[["gamma"],[R[13]],["value"]],[["tcm",["gamma"]],["gamma"]]]],[5,"mismatch",E,E,N,[[[R[23]],["e"]],[["error"],[R[25],["error"]]]]],[6,"GammaRaw",E,"Since we have no place to document `lookupG` I'll put it…",N,N],[6,"Gamma",E,"$\\Gamma ::= () \\ | \\ \\Gamma, x : t$, `Gamma` in Mini-TT.…",N,N],[6,"TCM",E,"`G` in Mini-TT. Type-Checking Monad.",N,N],[11,"new",E,E,12,[[["gamma"],[R[12]]],["self"]]],[11,R[20],E,"Since `context` is ref-counted, it's gonna be cheap to…",12,[[["self"]],[R[12]]]],[11,"update",E,E,12,[[[R[0]],["value"]],[["tcm",["tcs"]],["tcs"]]]],[11,"default_error",E,"Default `TCE`",13,[[[R[13]]],["tcm"]]],[0,"subtype",R[18],"Subtyping check: fallback rules of \"instance of\" checks:…",N,N],[5,"check_subtype","minitt::check::subtype","Check if `subtype` is the subtype of `supertype`.",N,[[["u32"],["value"],["tcs"],["bool"]],[["tcs"],["tcm",["tcs"]]]]],[5,"check_subtype_sum",E,"Extracted from `check_subtype` to reduce indentation (but…",N,[[["btreemap",[R[13],"box"]],["u32"],[R[13]],["tcs"],["box",["case"]]],[["tcs"],["tcm",["tcs"]]]]],[5,"compare_normal",E,"Read back the type values and do syntactic comparison.",N,[[["u32"],["value"],["tcs"]],[["tcs"],["tcm",["tcs"]]]]],[0,"expr",R[18],"Expression checker: infer, instance-of check, normal-form…",N,N],[5,"check_infer","minitt::check::expr","$$ \\frac{\\Gamma(x)\\rightarrow t} {\\rho,\\Gamma\\vdash_l…",N,[[["u32"],["tcs"],[R[1]]],[["tcm",["value"]],["value"]]]],[5,"check_type",E,"$$ \\frac{}{\\rho,\\Gamma\\vdash_l \\textsf{U}} $$ $$…",N,[[["u32"],["tcs"],[R[1]]],["tcm"]]],[5,"check_merge_type",E,"To reuse code that checks if a merge expression is…",N,[[["u32"],[R[1]],["tcs"]],["tcm"]]],[5,"check",E,"$$ \\frac{\\rho,\\Gamma\\vdash_l M\\Leftarrow ⟦A_i⟧v}…",N,[[["u32"],[R[1]],["value"],["tcs"]],[["tcs"],["tcm",["tcs"]]]]],[5,"check_level",E,"$$ \\frac{i < j}{\\Gamma\\vdash \\textsf{U}_i <: \\textsf{U}_j}…",N,[[["u32"]],[["tcs"],["tcm",["tcs"]]]]],[5,"check_fallback",E,"$$ \\frac{\\rho,\\Gamma\\vdash_l M \\Rightarrow t' \\quad…",N,[[["u32"],[R[1]],["value"],["tcs"]],[["tcs"],["tcm",["tcs"]]]]],[5,"check_sum_type",E,"$$ \\frac{\\rho,\\Gamma\\vdash_l A_1\\Leftarrow \\textsf{U}…",N,[[["branch"],["u32"],["tcs"]],["tcm"]]],[5,"check_telescoped",E,R[22],N,[[["u32"],[R[1]],["tcs"],["typed"]],["tcm"]]],[5,"generate_for",E,E,N,[[["value"],["u32"]],["value"]]],[0,"decl",R[18],"Declaration checker: for prefix parameters, simple…",N,N],[5,"check_lift_parameters","minitt::check::decl","$$ \\frac{\\rho \\ \\texttt{empty} \\quad T:\\textsf{U} \\quad…",N,[[["vec",["typed"]],["u32"],["tcs"],["typed"]],[["tcm",[R[21]]],[R[21]]]]],[5,"check_recursive_declaration",E,R[22],N,[[["u32"],["tcs"],[R[14]]],[["gamma"],["tcm",["gamma"]]]]],[5,"check_simple_declaration",E,"$$ \\frac{\\rho,\\Gamma\\vdash_l A \\quad \\rho,\\Gamma\\vdash_l…",N,[[[R[0]],["u32"],[R[1]],["tcs"]],[["gamma"],["tcm",["gamma"]]]]],[5,"check_declaration",E,"Originally `checkD` in Mini-TT, but now it's not because…",N,[[["u32"],["tcs"],[R[14]]],[["tcs"],["tcm",["tcs"]]]]],[6,"LiftState",E,"Internal state when lifting prefix-parameters.",N,N],[0,"pretty",R[26],"Pretty print utilities.",N,N],[5,"fmt_branch","minitt::pretty",E,N,[[["genericbranch"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt_with_type",R[10],"Actual implementation of `fmt` for `Closure`",9,[[["self"],[R[42],["value"]],["value"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[0,"parser",R[26],"Parser, from text to AST and a bunch of related tools.",N,N],[3,R[56],R[39],"The name stands for \"Mini-TT's Parser\"",N,N],[4,"Rule",E,E,N,N],[13,"EOI",E,E,14,N],[13,"WHITESPACE",E,E,14,N],[13,"character",E,E,14,N],[13,"identifier_simple",E,E,14,N],[13,"identifier_raw",E,E,14,N],[13,"identifier",E,E,14,N],[13,"constructor_name",E,E,14,N],[13,"level",E,E,14,N],[13,"pi",E,E,14,N],[13,"sigma",E,E,14,N],[13,"lambda",E,E,14,N],[13,"multiplication",E,E,14,N],[13,"for_all",E,E,14,N],[13,"double_arrow",E,E,14,N],[13,"single_arrow",E,E,14,N],[13,"let_or_rec",E,E,14,N],[13,"one",E,E,14,N],[13,"unit",E,E,14,N],[13,"universe",E,E,14,N],[13,"void",E,E,14,N],[13,"meta_var",E,E,14,N],[13,"prefix_parameter",E,E,14,N],[13,R[27],E,E,14,N],[13,"atom_pattern",E,E,14,N],[13,"pair_pattern",E,E,14,N],[13,R[0],E,E,14,N],[13,"maybe_pattern",E,E,14,N],[13,"typed_pattern",E,E,14,N],[13,"typed_abstraction",E,E,14,N],[13,"branches",E,E,14,N],[13,"choices",E,E,14,N],[13,"pi_type",E,E,14,N],[13,"lambda_expression",E,E,14,N],[13,"constructor",E,E,14,N],[13,"pattern_match",E,E,14,N],[13,"sigma_type",E,E,14,N],[13,"split",E,E,14,N],[13,"sum",E,E,14,N],[13,"variable",E,E,14,N],[13,"atom",E,E,14,N],[13,"function_type",E,E,14,N],[13,"pair_type",E,E,14,N],[13,"application",E,E,14,N],[13,"pair",E,E,14,N],[13,"merge_sum",E,E,14,N],[13,"first",E,E,14,N],[13,"second",E,E,14,N],[13,R[1],E,E,14,N],[13,"const_declaration",E,E,14,N],[13,R[14],E,E,14,N],[13,"file",E,E,14,N],[5,"parse_str",E,"Parse a string into an optional expression based on `file`…",N,[[["str"]],[["tok"],[R[25],["tok",R[13]]],[R[13]]]]],[5,"parse_str_to_json",E,"Parse a string into the json-format lexical information.",N,[[["str"]],[[R[13]],[R[25],[R[13],R[13]]]]]],[5,"parse_str_err_printed",E,"Parse a string into an optional expression and print error…",N,[[["str"]],[[R[25],[R[1]]],[R[1]]]]],[5,"next_expression",E,E,N,[[["tik"]],[R[1]]]],[5,"next_atom",E,E,N,[[["tik"]],[R[1]]]],[5,"next_pattern",E,E,N,[[["tik"]],[R[0]]]],[5,"next_constructor_name",E,E,N,[[["tik"]],[R[13]]]],[5,"end_of_rule",E,E,N,[[["tik"]]]],[5,"expression_to_expression",E,"`ignore expression = { declaration | const_declaration |…",N,[[["tok"]],[R[1]]]],[5,"first_to_expression",E,"`ignore first = { atom ~ \".1\" } `",N,[[["tok"]],[R[1]]]],[5,"function_type_to_expression",E,"`ignore function_type = { atom ~ \"->\" ~ expression } `",N,[[["tok"]],[R[1]]]],[5,"pair_type_to_expression",E,"`ignore multiplication = _{ \"*\" | \"\\\\times\" | \"×\" }…",N,[[["tok"]],[R[1]]]],[5,"atom_and_expression_to_tuple",E,"Helper, extracted.",N,[[["tok"]]]],[5,"second_to_expression",E,"`ignore second = { atom ~ \".2\" } `",N,[[["tok"]],[R[1]]]],[5,"pair_to_expression",E,"`ignore pair = { atom ~ \",\" ~ expression } `",N,[[["tok"]],[R[1]]]],[5,"application_to_expression",E,"`ignore application = { atom ~ expression } `",N,[[["tok"]],[R[1]]]],[5,"prefix_parameters_to_vec",E,"`ignore prefix_parameter = { \"(\" ~ typed_pattern ~ \")\" }…",N,[[["tok"]],[["vec",["typed"]],["typed"]]]],[5,"declaration_to_expression",E,"`ignore declaration = { let_or_rec? ~ pattern ~…",N,[[["tok"]],[R[1]]]],[5,"const_declaration_to_expression",E,"`ignore const_declaration = { \"const\" ~ pattern ~ \"=\" ~…",N,[[["tok"]],[R[1]]]],[5,"merge_sum_to_expression",E,"`ignore merge_sum = { atom ~ \"++\" ~ expression } `",N,[[["tok"]],[R[1]]]],[5,"atom_to_expression",E,"`ignore atom = { universe | constructor | variable | split…",N,[[["tok"]],[R[1]]]],[5,"branches_to_tree_map",E,"`ignore branches = _{ \"{\" ~ (constructor ~ (\"|\" ~…",N,[[["tok"]],["branch"]]],[5,"choices_to_tree_map",E,"`ignore choices = _{ \"{\" ~ (pattern_match ~ (\"|\" ~…",N,[[["tok"]],["branch"]]],[5,"pi_type_to_expression",E,"`ignore pi = ${ (\"\\\\Pi\" | \"\\u{03A0}\") ~ level } pi_type =…",N,[[["tok"]],[R[1]]]],[5,"sigma_type_to_expression",E,"`ignore sigma = ${ (\"\\\\Sigma\" | \"\\u{03A3}\") ~ level }…",N,[[["tok"]],[R[1]]]],[5,"typed_abstraction_to_tuple",E,"`ignore typed_abstraction = _{ pattern ~ \":\" ~ expression…",N,[[["tok"]]]],[5,"atom_pattern_to_pattern",E,"`ignore atom_pattern = { identifier | meta_var | \"(\" ~…",N,[[["tok"]],[R[0]]]],[5,"pattern_to_pattern",E,"`ignore pair_pattern = { atom_pattern ~ \",\" ~ pattern }…",N,[[["tok"]],[R[0]]]],[5,"lambda_expression_to_expression",E,"`ignore lambda = _{ lambda unicode | \"\\\\lambda\" }…",N,[[["tok"]],[R[1]]]],[5,"constructor_to_expression",E,"Constructor as an expression",N,[[["tok"]],[R[1]]]],[5,"universe_to_expression",E,"`ignore level = { ASCII_DIGIT* } universe = @{ \"Type\" ~…",N,[[["tok"]],[R[1]]]],[5,"constructor_to_tuple",E,"`ignore constructor_name = @{ ASCII_ALPHA_UPPER ~…",N,[[["tok"]]]],[5,"maybe_pattern_to_pattern",E,"`ignore maybe_pattern = { pattern? } `",N,[[["tok"]],[R[0]]]],[5,"variable_to_expression",E,"`ignore variable = { identifier } `",N,[[["tok"]],[R[1]]]],[5,"identifier_to_name",E,"`ignore identifier = @{ !\"let\" ~ !\"rec\" ~ !\"0\" ~ !\"1\" ~…",N,[[["tok"]],[R[13]]]],[6,"Tok",E,E,N,N],[6,"Tik",E,E,N,N],[17,"_PEST_GRAMMAR_MiniParser",E,E,N,N],[14,"tcs_borrow",R[26],"Cannot be an implementation of `Clone` due to lifetime…",N,N],[14,"tce_unreachable",E,"Records the source code location that the error occurs,…",N,N],[11,R[28],R[10],E,0,[[["self"]],[T]]],[11,R[29],E,E,0,[[["self"],[T]]]],[11,"into",E,E,0,[[],[U]]],[11,"from",E,E,0,[[[T]],[T]]],[11,R[30],E,E,0,[[[U]],[R[25]]]],[11,R[31],E,E,0,[[],[R[25]]]],[11,R[32],E,E,0,[[["self"]],[T]]],[11,R[35],E,E,0,[[["self"]],[T]]],[11,R[34],E,E,0,[[["self"]],[R[36]]]],[11,R[28],E,E,1,[[["self"]],[T]]],[11,R[29],E,E,1,[[["self"],[T]]]],[11,"into",E,E,1,[[],[U]]],[11,"from",E,E,1,[[[T]],[T]]],[11,R[33],E,E,1,[[["self"]],[R[13]]]],[11,R[30],E,E,1,[[[U]],[R[25]]]],[11,R[31],E,E,1,[[],[R[25]]]],[11,R[32],E,E,1,[[["self"]],[T]]],[11,R[35],E,E,1,[[["self"]],[T]]],[11,R[34],E,E,1,[[["self"]],[R[36]]]],[11,R[28],E,E,2,[[["self"]],[T]]],[11,R[29],E,E,2,[[["self"],[T]]]],[11,"into",E,E,2,[[],[U]]],[11,"from",E,E,2,[[[T]],[T]]],[11,R[33],E,E,2,[[["self"]],[R[13]]]],[11,R[30],E,E,2,[[[U]],[R[25]]]],[11,R[31],E,E,2,[[],[R[25]]]],[11,R[32],E,E,2,[[["self"]],[T]]],[11,R[35],E,E,2,[[["self"]],[T]]],[11,R[34],E,E,2,[[["self"]],[R[36]]]],[11,R[28],E,E,3,[[["self"]],[T]]],[11,R[29],E,E,3,[[["self"],[T]]]],[11,"into",E,E,3,[[],[U]]],[11,"from",E,E,3,[[[T]],[T]]],[11,R[33],E,E,3,[[["self"]],[R[13]]]],[11,R[30],E,E,3,[[[U]],[R[25]]]],[11,R[31],E,E,3,[[],[R[25]]]],[11,R[32],E,E,3,[[["self"]],[T]]],[11,R[35],E,E,3,[[["self"]],[T]]],[11,R[34],E,E,3,[[["self"]],[R[36]]]],[11,R[28],E,E,4,[[["self"]],[T]]],[11,R[29],E,E,4,[[["self"],[T]]]],[11,"into",E,E,4,[[],[U]]],[11,"from",E,E,4,[[[T]],[T]]],[11,R[33],E,E,4,[[["self"]],[R[13]]]],[11,R[30],E,E,4,[[[U]],[R[25]]]],[11,R[31],E,E,4,[[],[R[25]]]],[11,R[32],E,E,4,[[["self"]],[T]]],[11,R[35],E,E,4,[[["self"]],[T]]],[11,R[34],E,E,4,[[["self"]],[R[36]]]],[11,R[28],E,E,5,[[["self"]],[T]]],[11,R[29],E,E,5,[[["self"],[T]]]],[11,"into",E,E,5,[[],[U]]],[11,"from",E,E,5,[[[T]],[T]]],[11,R[33],E,E,5,[[["self"]],[R[13]]]],[11,R[30],E,E,5,[[[U]],[R[25]]]],[11,R[31],E,E,5,[[],[R[25]]]],[11,R[32],E,E,5,[[["self"]],[T]]],[11,R[35],E,E,5,[[["self"]],[T]]],[11,R[34],E,E,5,[[["self"]],[R[36]]]],[11,R[28],E,E,6,[[["self"]],[T]]],[11,R[29],E,E,6,[[["self"],[T]]]],[11,"into",E,E,6,[[],[U]]],[11,"from",E,E,6,[[[T]],[T]]],[11,R[33],E,E,6,[[["self"]],[R[13]]]],[11,R[30],E,E,6,[[[U]],[R[25]]]],[11,R[31],E,E,6,[[],[R[25]]]],[11,R[32],E,E,6,[[["self"]],[T]]],[11,R[35],E,E,6,[[["self"]],[T]]],[11,R[34],E,E,6,[[["self"]],[R[36]]]],[11,R[28],E,E,7,[[["self"]],[T]]],[11,R[29],E,E,7,[[["self"],[T]]]],[11,"into",E,E,7,[[],[U]]],[11,"from",E,E,7,[[[T]],[T]]],[11,R[33],E,E,7,[[["self"]],[R[13]]]],[11,R[30],E,E,7,[[[U]],[R[25]]]],[11,R[31],E,E,7,[[],[R[25]]]],[11,R[32],E,E,7,[[["self"]],[T]]],[11,R[35],E,E,7,[[["self"]],[T]]],[11,R[34],E,E,7,[[["self"]],[R[36]]]],[11,R[28],E,E,8,[[["self"]],[T]]],[11,R[29],E,E,8,[[["self"],[T]]]],[11,"into",E,E,8,[[],[U]]],[11,"from",E,E,8,[[[T]],[T]]],[11,R[33],E,E,8,[[["self"]],[R[13]]]],[11,R[30],E,E,8,[[[U]],[R[25]]]],[11,R[31],E,E,8,[[],[R[25]]]],[11,R[32],E,E,8,[[["self"]],[T]]],[11,R[35],E,E,8,[[["self"]],[T]]],[11,R[34],E,E,8,[[["self"]],[R[36]]]],[11,R[28],E,E,9,[[["self"]],[T]]],[11,R[29],E,E,9,[[["self"],[T]]]],[11,"into",E,E,9,[[],[U]]],[11,"from",E,E,9,[[[T]],[T]]],[11,R[33],E,E,9,[[["self"]],[R[13]]]],[11,R[30],E,E,9,[[[U]],[R[25]]]],[11,R[31],E,E,9,[[],[R[25]]]],[11,R[32],E,E,9,[[["self"]],[T]]],[11,R[35],E,E,9,[[["self"]],[T]]],[11,R[34],E,E,9,[[["self"]],[R[36]]]],[11,R[28],R[37],E,10,[[["self"]],[T]]],[11,R[29],E,E,10,[[["self"],[T]]]],[11,"into",E,E,10,[[],[U]]],[11,"from",E,E,10,[[[T]],[T]]],[11,R[33],E,E,10,[[["self"]],[R[13]]]],[11,R[30],E,E,10,[[[U]],[R[25]]]],[11,R[31],E,E,10,[[],[R[25]]]],[11,R[32],E,E,10,[[["self"]],[T]]],[11,R[35],E,E,10,[[["self"]],[T]]],[11,R[34],E,E,10,[[["self"]],[R[36]]]],[11,"into",R[38],E,12,[[],[U]]],[11,"from",E,E,12,[[[T]],[T]]],[11,R[30],E,E,12,[[[U]],[R[25]]]],[11,R[31],E,E,12,[[],[R[25]]]],[11,R[32],E,E,12,[[["self"]],[T]]],[11,R[35],E,E,12,[[["self"]],[T]]],[11,R[34],E,E,12,[[["self"]],[R[36]]]],[11,R[28],E,E,13,[[["self"]],[T]]],[11,R[29],E,E,13,[[["self"],[T]]]],[11,"into",E,E,13,[[],[U]]],[11,"from",E,E,13,[[[T]],[T]]],[11,R[33],E,E,13,[[["self"]],[R[13]]]],[11,R[30],E,E,13,[[[U]],[R[25]]]],[11,R[31],E,E,13,[[],[R[25]]]],[11,R[32],E,E,13,[[["self"]],[T]]],[11,R[35],E,E,13,[[["self"]],[T]]],[11,R[34],E,E,13,[[["self"]],[R[36]]]],[11,"into",R[39],E,15,[[],[U]]],[11,"from",E,E,15,[[[T]],[T]]],[11,R[30],E,E,15,[[[U]],[R[25]]]],[11,R[31],E,E,15,[[],[R[25]]]],[11,R[32],E,E,15,[[["self"]],[T]]],[11,R[35],E,E,15,[[["self"]],[T]]],[11,R[34],E,E,15,[[["self"]],[R[36]]]],[11,R[28],E,E,14,[[["self"]],[T]]],[11,R[29],E,E,14,[[["self"],[T]]]],[11,"into",E,E,14,[[],[U]]],[11,"from",E,E,14,[[[T]],[T]]],[11,R[30],E,E,14,[[[U]],[R[25]]]],[11,R[31],E,E,14,[[],[R[25]]]],[11,R[32],E,E,14,[[["self"]],[T]]],[11,R[35],E,E,14,[[["self"]],[T]]],[11,R[34],E,E,14,[[["self"]],[R[36]]]],[11,R[17],R[10],R[40],5,[[["u32"]]]],[11,R[17],R[26],E,16,[[["u32"]]]],[11,R[17],E,"$$ \\begin{alignedat}{2} & \\textsf{R}_i \\textsf{x}_j &&=…",17,[[["u32"]]]],[11,R[41],R[10],E,4,[[["self"]]]],[11,R[41],E,E,1,[[["self"]]]],[11,R[41],E,E,6,[[["self"]]]],[11,R[41],E,E,7,[[["self"]]]],[11,R[41],E,E,2,[[["self"]]]],[11,R[41],E,E,8,[[["self"]]]],[11,R[41],E,E,3,[[["self"]]]],[11,R[41],R[37],E,10,[[["self"]]]],[11,R[41],R[39],E,14,[[["self"]]]],[11,"default",R[38],E,12,[[],["self"]]],[11,R[8],R[10],E,4,[[["self"]],[R[1]]]],[11,R[8],E,E,0,[[["self"]],["anonymousvalue"]]],[11,R[8],E,E,1,[[["self"]],["typed"]]],[11,R[8],E,E,5,[[["self"]],["value"]]],[11,R[8],E,E,6,[[["self"]],[R[45]]]],[11,R[8],E,E,7,[[["self"]],[R[0]]]],[11,R[8],E,E,2,[[["self"]],[R[14]]]],[11,R[8],E,E,8,[[["self"]],[R[46]]]],[11,R[8],E,E,9,[[["self"]],["closure"]]],[11,R[8],E,E,3,[[["self"]],[R[47]]]],[11,R[8],R[37],E,10,[[["self"]],[R[48]]]],[11,R[8],R[38],E,13,[[["self"]],["tce"]]],[11,R[8],R[39],E,14,[[["self"]],["rule"]]],[11,R[44],R[10],E,7,[[["self"],[R[0]]],[[R[42],[R[43]]],[R[43]]]]],[11,"lt",E,E,7,[[["self"],[R[0]]],["bool"]]],[11,"le",E,E,7,[[["self"],[R[0]]],["bool"]]],[11,"gt",E,E,7,[[["self"],[R[0]]],["bool"]]],[11,"ge",E,E,7,[[["self"],[R[0]]],["bool"]]],[11,R[44],R[39],E,14,[[["self"],["rule"]],[[R[42],[R[43]]],[R[43]]]]],[11,"eq",R[10],E,4,[[["self"],[R[1]]],["bool"]]],[11,"ne",E,E,4,[[["self"],[R[1]]],["bool"]]],[11,"eq",E,E,0,[[["self"]],["bool"]]],[11,"eq",E,E,1,[[["self"],["typed"]],["bool"]]],[11,"ne",E,E,1,[[["self"],["typed"]],["bool"]]],[11,"eq",E,E,6,[[["self"],[R[45]]],["bool"]]],[11,"ne",E,E,6,[[["self"],[R[45]]],["bool"]]],[11,"eq",E,E,7,[[["self"],[R[0]]],["bool"]]],[11,"ne",E,E,7,[[["self"],[R[0]]],["bool"]]],[11,"eq",E,E,2,[[["self"],[R[14]]],["bool"]]],[11,"ne",E,E,2,[[["self"],[R[14]]],["bool"]]],[11,"eq",E,E,8,[[["self"],[R[46]]],["bool"]]],[11,"ne",E,E,8,[[["self"],[R[46]]],["bool"]]],[11,"eq",E,E,3,[[["self"],[R[47]]],["bool"]]],[11,"ne",E,E,3,[[["self"],[R[47]]],["bool"]]],[11,"eq",R[37],E,10,[[["self"],[R[48]]],["bool"]]],[11,"ne",E,E,10,[[["self"],[R[48]]],["bool"]]],[11,"eq",R[39],E,14,[[["self"],["rule"]],["bool"]]],[11,"cmp",R[10],E,7,[[["self"],[R[0]]],[R[43]]]],[11,"cmp",R[39],E,14,[[["self"],["rule"]],[R[43]]]],[11,"hash",E,E,14,[[["self"],["__h"]]]],[11,"fmt",R[10],E,4,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,0,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,1,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,5,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,6,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,7,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,2,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,8,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,9,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,3,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",R[37],E,10,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",R[38],E,13,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",E,E,12,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",R[39],E,14,[[["self"],[R[23]]],[R[25]]]],[11,"fmt",R[38],E,13,[[["self"],[R[23]]],[["error"],[R[25],["error"]]]]],[11,"fmt",R[10],E,5,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,4,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,3,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,1,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,7,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,2,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,9,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",E,E,6,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",R[37],E,10,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"fmt",R[10],E,8,[[["self"],[R[23]]],[[R[24]],[R[25],[R[24]]]]]],[11,"parse",R[39],E,15,[[["rule"],["str"]],[[R[25],["pairs","error"]],["pairs",["rule"]],["error",["rule"]]]]]],"p":[[3,R[49]],[3,"Typed"],[3,R[2]],[3,R[50]],[4,R[51]],[4,"Value"],[4,R[52]],[4,"Pattern"],[4,R[53]],[4,"Closure"],[4,R[54]],[8,R[55]],[3,"TCS"],[4,"TCE"],[4,"Rule"],[3,R[56]],[6,"Case"],[6,R[9]]]};
initSearch(searchIndex);addSearchOptions(searchIndex);