From 9ef466ee48629335b4c0168e124c363a58a5c0d5 Mon Sep 17 00:00:00 2001 From: Victor Taelin Date: Fri, 1 Mar 2024 12:21:26 -0300 Subject: [PATCH] remove check.hvm1 --- book/.check.hvm1 | 986 ----------------------------------------------- 1 file changed, 986 deletions(-) delete mode 100644 book/.check.hvm1 diff --git a/book/.check.hvm1 b/book/.check.hvm1 deleted file mode 100644 index 3450f481..00000000 --- a/book/.check.hvm1 +++ /dev/null @@ -1,986 +0,0 @@ -// Types -// ----- - -//data Maybe - //= (Some value) - //| None - -//data Bool - //= False - //| True - -//data Pair - //= (Pair fst snd) - -//data Term - //= (All nam inp bod) - //| (Lam nam bod) - //| (App fun arg) - //| (Ann val typ) - //| (Slf nam typ bod) - //| (Ins val) - //| (Ref nam sub val) - //| (Let nam val bod) - //| (Set) - //| (U60) - //| (Num val) - //| (Op2 opr fst snd) - //| (Mat nam x z s p) - //| (Txt txt) - //| (Hol nam ctx) - //| (Var nam idx) - //| (Src src val) - -// Prelude -// ------- - -(U60.seq 0 cont) = (cont 0) -(U60.seq n cont) = (cont n) - -(String.seq (String.cons x xs) cont) = (U60.seq x λx(String.seq xs λxs(cont (String.cons x xs)))) -(String.seq String.nil cont) = (cont String.nil) - -(Print dep [] value) = value -(Print dep msg value) = (String.seq (String.join msg) λstr(HVM.log str value)) -//(Print dep [] value) = value -//(Print dep msg value) = (If (> dep 10) 1 (HVM.print (String.join msg) value)) - -(NewLine) = (String.cons 10 String.nil) -(Quote) = (String.cons 34 String.nil) - -(And True b) = b -(And False b) = False - -(Or True b) = True -(Or False b) = b - -(If 0 t f) = f -(If n t f) = t - -(When None some none) = none -(When (Some val) some none) = (some val) - -(U60.show n) = (U60.show.go n String.nil) -(U60.show.go n res) = (U60.show.go.match (< n 10) n res) -(U60.show.go.match 0 n res) = (U60.show.go (/ n 10) (String.cons (+ '0' (% n 10)) res)) -(U60.show.go.match i n res) = (String.cons (+ '0' n) res) - -(U60.name n) = (U60.name.go (+ n 1)) -(U60.name.go 0) = "" -(U60.name.go n) = (String.cons (+ 97 (% (- n 1) 26)) (U60.name.go (/ (- n 1) 26))) - -(Same String.nil String.nil) = 1 -(Same String.nil (String.cons y ys)) = 0 -(Same (String.cons x xs) String.nil) = 0 -(Same (String.cons x xs) (String.cons y ys)) = (& (== x y) (Same xs ys)) - -(Find name List.nil) = None -(Find name (List.cons (Pair nam val) tail)) = (If (Same nam name) (Some val) (Find name tail)) - -(List.map f (List.cons x xs)) = (List.cons (f x) (List.map f xs)) -(List.map f List.nil) = List.nil - -(String.concat String.nil ys) = ys -(String.concat (String.cons x xs) ys) = (String.cons x (String.concat xs ys)) - -(String.join List.nil) = "" -(String.join (List.cons x xs)) = (String.concat x (String.join xs)) - -(String.tail String.nil) = String.nil -(String.tail (String.cons x xs)) = xs - -(Pair.fst (Pair fst snd)) = fst -(Pair.snd (Pair fst snd)) = snd - -(Pair.get (Pair fst snd) fun) = (fun fst snd) - -(Maybe.match (Some value) some none) = (some value) -(Maybe.match None some none) = none - -(Maybe.pure x) = (Some x) -(Maybe.bind a b) = (Maybe.match a λvalue(b value) None) - -// Converts an U60 to a bitstring -(U60.to_bits 0) = E -(U60.to_bits 1) = (I E) -(U60.to_bits n) = (If (== (% n 2) 0) (O (U60.to_bits (/ n 2))) (I (U60.to_bits (/ n 2)))) - -(String.color RESET) = (String.cons 27 "[0m") -(String.color BRIGHT) = (String.cons 27 "[1m") -(String.color DIM) = (String.cons 27 "[2m") -(String.color UNDERSCORE) = (String.cons 27 "[4m") -(String.color BLINK) = (String.cons 27 "[5m") -(String.color REVERSE) = (String.cons 27 "[7m") -(String.color HIDDEN) = (String.cons 27 "[8m") -(String.color BLACK) = (String.cons 27 "[30m") -(String.color RED) = (String.cons 27 "[31m") -(String.color GREEN) = (String.cons 27 "[32m") -(String.color YELLOW) = (String.cons 27 "[33m") -(String.color BLUE) = (String.cons 27 "[34m") -(String.color MAGENTA) = (String.cons 27 "[35m") -(String.color CYAN) = (String.cons 27 "[36m") -(String.color WHITE) = (String.cons 27 "[37m") -(String.color GRAY) = (String.cons 27 "[90m") -(String.color BG_BLACK) = (String.cons 27 "[40m") -(String.color BG_RED) = (String.cons 27 "[41m") -(String.color BG_GREEN) = (String.cons 27 "[42m") -(String.color BG_YELLOW) = (String.cons 27 "[43m") -(String.color BG_BLUE) = (String.cons 27 "[44m") -(String.color BG_MAGENTA) = (String.cons 27 "[45m") -(String.color BG_CYAN) = (String.cons 27 "[46m") -(String.color BG_WHITE) = (String.cons 27 "[47m") -(String.color BG_GRAY) = (String.cons 27 "[100m") -(String.color x) = "?" - -// BitsMap -// ------- - -(Map.new) = List.nil - -(Map.has eq k (List.cons (Pair key val) map)) = (If (eq key k) 1 (Map.has eq k map)) -(Map.has eq k List.nil) = 0 - -(Map.ins eq k v (List.cons (Pair key val) map)) = ((If (eq key k) λmap(None) λmap(Maybe.bind (Map.ins eq k v map) λmap(Some (List.cons (Pair key val) map)))) map) -(Map.ins eq k v List.nil) = (Some (List.cons (Pair k v) List.nil)) - -(Map.set eq k v (List.cons (Pair key val) map)) = ((If (eq key k) λmap(List.cons (Pair k v) map) λmap(List.cons (Pair key val) (Map.set eq k v map))) map) -(Map.set eq k v List.nil) = (List.cons (Pair k v) List.nil) - -(Map.get eq k (List.cons (Pair key val) map)) = (If (eq key k) (Some val) (Map.get eq k map)) -(Map.get eq k List.nil) = None - -// Holes -// ----- - -(Subst (List.cons (Pair nam None) subs) val) = (Subst subs (val None)) -(Subst (List.cons (Pair nam (Some x)) subs) val) = (Subst subs (val (Some x))) -(Subst List.nil val) = val - -// Evaluation -// ---------- - -// Evaluation levels: -// - 0: reduces refs never -// - 1: reduces refs on redexes -// - 2: reduces refs always - -(Reduce lv (App fun arg)) = (Reduce.app lv (Reduce lv fun) arg) -(Reduce lv (Ann val typ)) = (Reduce lv val) -(Reduce lv (Ins val)) = (Reduce lv val) -(Reduce lv (Ref nam sub val)) = (Reduce.ref lv nam sub (Reduce lv val)) -(Reduce lv (Let nam val bod)) = (Reduce lv (bod val)) -(Reduce lv (Op2 opr fst snd)) = (Reduce.op2 lv opr (Reduce lv fst) (Reduce lv snd)) -(Reduce lv (Mat nam x z s p)) = (Reduce.mat lv nam (Reduce lv x) z s p) -(Reduce lv (Met nam val)) = (Reduce.met lv nam val) -(Reduce lv (Txt txt)) = (Reduce.txt lv txt) -(Reduce lv (Src src val)) = (Reduce lv val) -(Reduce lv val) = val - -(Reduce.app 2 (Ref _ _ val) arg) = (Reduce.app 2 val arg) // FIXME: should this be here? (no.) -(Reduce.app 1 (Ref _ _ val) arg) = (Reduce.app 1 val arg) // FIXME: should this be here? (no.) -(Reduce.app lv (Lam nam bod) arg) = (Reduce lv (bod (Reduce 0 arg))) -(Reduce.app lv fun arg) = (App fun arg) - -(Reduce.op2 1 op (Ref _ _ x) (Num snd)) = (Reduce.op2 1 op x snd) -(Reduce.op2 2 op (Ref _ _ x) (Num snd)) = (Reduce.op2 2 op x snd) -(Reduce.op2 1 op (Num fst) (Ref _ _ x)) = (Reduce.op2 1 op fst x) -(Reduce.op2 2 op (Num fst) (Ref _ _ x)) = (Reduce.op2 2 op fst x) -(Reduce.op2 lv ADD (Num fst) (Num snd)) = (Num (+ fst snd)) -(Reduce.op2 lv SUB (Num fst) (Num snd)) = (Num (- fst snd)) -(Reduce.op2 lv MUL (Num fst) (Num snd)) = (Num (* fst snd)) -(Reduce.op2 lv DIV (Num fst) (Num snd)) = (Num (/ fst snd)) -(Reduce.op2 lv MOD (Num fst) (Num snd)) = (Num (% fst snd)) -(Reduce.op2 lv EQ (Num fst) (Num snd)) = (Num (== fst snd)) -(Reduce.op2 lv NE (Num fst) (Num snd)) = (Num (!= fst snd)) -(Reduce.op2 lv LT (Num fst) (Num snd)) = (Num (< fst snd)) -(Reduce.op2 lv GT (Num fst) (Num snd)) = (Num (> fst snd)) -(Reduce.op2 lv LTE (Num fst) (Num snd)) = (Num (<= fst snd)) -(Reduce.op2 lv GTE (Num fst) (Num snd)) = (Num (>= fst snd)) -(Reduce.op2 lv AND (Num fst) (Num snd)) = (Num (& fst snd)) -(Reduce.op2 lv OR (Num fst) (Num snd)) = (Num (| fst snd)) -(Reduce.op2 lv XOR (Num fst) (Num snd)) = (Num (^ fst snd)) -(Reduce.op2 lv LSH (Num fst) (Num snd)) = (Num (<< fst snd)) -(Reduce.op2 lv RSH (Num fst) (Num snd)) = (Num (>> fst snd)) -(Reduce.op2 lv opr fst snd) = (Op2 opr fst snd) - -(Reduce.mat 2 nam (Ref _ _ x) z s p) = (Reduce.mat 2 nam x z s p) -(Reduce.mat 1 nam (Ref _ _ x) z s p) = (Reduce.mat 1 nam x z s p) -(Reduce.mat lv nam (Num 0) z s p) = (Reduce lv z) -(Reduce.mat lv nam (Num n) z s p) = (Reduce lv (s (Num (- n 1)))) -(Reduce.mat lv nam (Op2 ADD (Num 1) k) z s p) = (Reduce lv (s k)) -(Reduce.mat lv nam val z s p) = (Mat nam val z s p) - -(Reduce.ref 2 nam sub val) = (Reduce 2 (Subst sub val)) -(Reduce.ref 1 nam sub val) = (Ref nam sub val) -(Reduce.ref lv nam sub val) = (Ref nam sub val) - -(Reduce.met lv nam None) = (Met nam None) -(Reduce.met lv nam (Some x)) = (Reduce lv x) - -(Reduce.txt lv (String.cons x xs)) = (Reduce lv (App (App Book.String.cons (Num x)) (Txt xs))) -(Reduce.txt lv String.nil) = (Reduce lv Book.String.nil) -(Reduce.txt lv val) = (Txt val) - -(Normal lv term dep) = (Normal.go lv (Normal.prefer (Reduce 0 term) (Reduce lv term)) dep) - -(Normal.prefer soft (Lam _ _)) = soft -(Normal.prefer soft (Slf _ _ _)) = soft -(Normal.prefer soft (All _ _ _)) = soft -(Normal.prefer soft hard) = hard - -(Normal.go lv (All nam inp bod) dep) = (All nam (Normal lv inp dep) λx(Normal lv (bod (Var nam dep)) (+ dep 1))) -(Normal.go lv (Lam nam bod) dep) = (Lam nam λx(Normal lv (bod (Var nam dep)) (+ 1 dep))) -(Normal.go lv (App fun arg) dep) = (App (Normal lv fun dep) (Normal lv arg dep)) -(Normal.go lv (Ann val typ) dep) = (Ann (Normal lv val dep) (Normal lv typ dep)) -(Normal.go lv (Slf nam typ bod) dep) = (Slf nam typ λx(Normal lv (bod (Var nam dep)) (+ 1 dep))) -(Normal.go lv (Ins val) dep) = (Ins (Normal lv val dep)) -(Normal.go lv (Ref nam sub val) dep) = (Ref nam sub (Normal lv val dep)) -(Normal.go lv (Let nam val bod) dep) = (Let nam (Normal lv val dep) λx(Normal lv (bod (Var nam dep)) (+ 1 dep))) -(Normal.go lv (Hol nam ctx) dep) = (Hol nam ctx) -(Normal.go lv (Met nam val) dep) = (Met nam (Maybe.match val λx(Some (Normal lv x dep)) None)) -(Normal.go lv Set dep) = Set -(Normal.go lv U60 dep) = U60 -(Normal.go lv (Num val) dep) = (Num val) -(Normal.go lv (Op2 opr fst snd) dep) = (Op2 opr (Normal lv fst dep) (Normal lv snd dep)) -(Normal.go lv (Mat nam x z s p) dep) = (Mat nam (Normal lv x dep) (Normal lv z dep) λk(Normal lv (s (Var (String.concat nam "-1") dep)) dep) λk(Normal lv (p (Var nam dep)) dep)) -(Normal.go lv (Txt val) dep) = (Txt val) -(Normal.go lv (Var nam idx) dep) = (Var nam idx) -(Normal.go lv (Src src val) dep) = (Src src (Normal lv val dep)) - -// Checker -// ------- - -// type Result A = (Done Logs A) | (Fail Logs String) -// type Checker A = Logs -> (Result A) - -(Result.match (Done logs value) done fail) = (done logs value) -(Result.match (Fail logs error) done fail) = (fail logs error) - -//(State.get fill got) = (got fill logs) -//(State.new) = [] - -(Checker.bind a b) = λlogs (Result.match (a logs) λlogsλvalue((b value) logs) λlogsλerror(Fail logs error)) -(Checker.pure a) = λlogs (Done logs a) -(Checker.fail e) = λlogs (Fail logs e) -(Checker.run chk) = (chk []) -(Checker.log msg) = λlogs (Done (List.cons msg logs) 1) -(Checker.save) = λlogs (Done logs logs) -(Checker.load logs) = λeras (Done logs 0) - -// Equality -// -------- - -// The conversion checkers works as follows: -// - 1. If the two sides are structurally identical, they're equal. -// - 2. Otherwise, reduce both sides. -// - 3. If the two sides are structurally identical, they're equal. -// - 4. Otherwise, recurse on both sides and check if all fields are equal. -// This algorithm will return true when both sides reduce to the same normal -// form, but it will halt early if both sides become identical at any point -// during the reduction, allowing checking recursive terms. This is enough to -// cover any interesting term. Note we need to be careful with self-types, which -// must be "un-unrolled" to avoid loops. Read `docs/equality.md` for more info. - -// Checks if two term are equal -(Equal a b dep) = - //(Print dep ["Equal: " NewLine "- " (Show a dep) NewLine "- " (Show b dep)] - (Compare a b dep - let a = (Reduce 2 a) - let b = (Reduce 2 b) - (Compare a b dep - (Similar a b dep))) - -// Checks if two terms are structurally identical -// If yes, returns 1 (identical) or 2 (suspended) -// If not, undoes effects (logs, unifications, etc.) -(Compare a b dep else) = - (Checker.bind (Checker.save) λlogs - (Checker.bind (Identical a b dep) λequal - (If equal - (Checker.pure equal) - (Checker.bind (Checker.load logs) λx (else))))) - -// Checks if all components of a term are equal -(Similar (All a.nam a.inp a.bod) (All b.nam b.inp b.bod) dep) = - (Checker.bind (Equal a.inp b.inp dep) λe.inp - (Checker.bind (Equal (a.bod (Var a.nam dep)) (b.bod (Var b.nam dep)) (+ 1 dep)) λe.bod - (Checker.pure (& e.inp e.bod)))) -(Similar (Lam a.nam a.bod) (Lam b.nam b.bod) dep) = - (Equal (a.bod (Var a.nam dep)) (b.bod (Var b.nam dep)) (+ 1 dep)) -(Similar (App a.fun a.arg) (App b.fun b.arg) dep) = - (Checker.bind (Equal a.fun b.fun dep) λe.fun - (Checker.bind (Equal a.arg b.arg dep) λe.arg - (Checker.pure (& e.fun e.arg)))) -(Similar (Slf a.nam a.typ a.bod) (Slf b.nam b.typ b.bod) dep) = - (Similar (Reduce 0 a.typ) (Reduce 0 b.typ) dep) // <- must call Similar, NOT Equal -(Similar (Hol a.nam a.ctx) (Hol b.nam b.ctx) dep) = - (Checker.pure (Same a.nam b.nam)) -(Similar (Met a.nam a.val) (Met b.nam b.val) dep) = - (Checker.pure (Same a.nam b.nam)) -(Similar (Op2 a.opr a.fst a.snd) (Op2 b.opr b.fst b.snd) dep) = - (Checker.bind (Equal a.fst b.fst dep) λe.fst - (Checker.bind (Equal a.snd b.snd dep) λe.snd - (Checker.pure (Same e.fst e.snd)))) -(Similar (Mat a.nam a.x a.z a.s a.p) (Mat b.nam b.x b.z b.s b.p) dep) = - (Checker.bind (Equal a.x b.x dep) λe.x - (Checker.bind (Equal a.z b.z dep) λe.z - (Checker.bind (Equal (a.s (Var (String.concat a.nam "-1") dep)) (b.s (Var (String.concat b.nam "-1") dep)) dep) λe.s - (Checker.bind (Equal (a.p (Var a.nam dep)) (b.p (Var b.nam dep)) dep) λe.p - (& e.x (& e.z (& e.s e.p))))))) -(Similar a b dep) = - (Checker.pure 0) - -// Checks if two terms are structurally identical -(Identical a b dep) = - //(Print dep ["Identical?" NewLine "- " (Show a dep) NewLine "- " (Show b dep)] - (Unify.try b a dep - (Unify.try a b dep - (Identical.go a b dep))) - -(Identical.go (All a.nam a.inp a.bod) (All b.nam b.inp b.bod) dep) = - (Checker.bind (Identical a.inp b.inp dep) λi.inp - (Checker.bind (Identical (a.bod (Var a.nam dep)) (b.bod (Var b.nam dep)) (+ 1 dep)) λi.bod - (Checker.pure (& i.inp i.bod)))) -(Identical.go (Lam a.nam a.bod) (Lam b.nam b.bod) dep) = - (Identical (a.bod (Var a.nam dep)) (b.bod (Var b.nam dep)) (+ 1 dep)) -(Identical.go (App a.fun a.arg) (App b.fun b.arg) dep) = - (Checker.bind (Identical a.fun b.fun dep) λi.fun - (Checker.bind (Identical a.arg b.arg dep) λi.arg - (Checker.pure (& i.fun i.arg)))) -(Identical.go (Slf a.nam a.typ a.bod) (Slf b.nam b.typ b.bod) dep) = - (Identical a.typ b.typ dep) -(Identical.go (Ins a.val) b dep) = - (Identical a.val b dep) -(Identical.go a (Ins b.val) dep) = - (Identical a b.val dep) -(Identical.go (Let a.nam a.val a.bod) b dep) = - (Identical (a.bod a.val) b dep) -(Identical.go a (Let b.nam b.val b.bod) dep) = - (Identical a (b.bod b.val) dep) -(Identical.go Set Set dep) = - (Checker.pure 1) -(Identical.go (Ann a.val a.typ) b dep) = - (Identical a.val b dep) -(Identical.go a (Ann b.val b.typ) dep) = - (Identical a b.val dep) -(Identical.go (Met a.nam (Some a.val)) b dep) = - (Identical a.val b dep) -(Identical.go a (Met b.nam (Some b.val)) dep) = - (Identical a b.val dep) -(Identical.go (Met a.nam None) (Met b.nam None) dep) = - (Checker.pure (Same a.nam b.nam)) -(Identical.go (Hol a.nam a.ctx) (Hol b.nam b.ctx) dep) = - (Checker.pure (Same a.nam b.nam)) -(Identical.go U60 U60 dep) = - (Checker.pure 1) -(Identical.go (Num a.val) (Num b.val) dep) = - (Checker.pure (== a.val b.val)) -(Identical.go (Op2 a.opr a.fst a.snd) (Op2 b.opr b.fst b.snd) dep) = - (Checker.bind (Identical a.fst b.fst dep) λi.fst - (Checker.bind (Identical a.snd b.snd dep) λi.snd - (Checker.pure (& i.fst i.snd)))) -(Identical.go (Mat a.nam a.x a.z a.s a.p) (Mat b.nam b.x b.z b.s b.p) dep) = - (Checker.bind (Identical a.x b.x dep) λi.x - (Checker.bind (Identical a.z b.z dep) λi.z - (Checker.bind (Identical (a.s (Var (String.concat a.nam "-1") dep)) (b.s (Var (String.concat b.nam "-1") dep)) dep) λi.s - (Checker.bind (Identical (a.p (Var a.nam dep)) (b.p (Var b.nam dep)) dep) λi.p - (& i.x (& i.z (& i.s i.p))))))) -(Identical.go (Txt a.txt) (Txt b.txt) dep) = - (Checker.pure (Same a.txt b.txt)) -(Identical.go (Src a.src a.val) b dep) = - (Identical a.val b dep) -(Identical.go a (Src b.src b.val) dep) = - (Identical a b.val dep) -(Identical.go (Ref a.nam a.sub a.val) (Ref b.nam b.sub b.val) dep) = - (Checker.pure (Same a.nam b.nam)) -(Identical.go (Var a.nam a.idx) (Var b.nam b.idx) dep) = - (Checker.pure (== a.idx b.idx)) -(Identical.go a b dep) = - (Checker.pure 0) - -// Unification -// ----------- - -// The unification algorithm is a simple pattern unifier, based on smalltt: -// > https://github.com/AndrasKovacs/elaboration-zoo/blob/master/03-holes/Main.hs -// The 'Unify.try' fn will attempt to match the following pattern: -// (?A x y z ...) = B -// Where: -// 1. The LHS spine, `x y z ...`, consists of distinct variables. -// 2. Every free var of the RHS, `B`, occurs in the spine. -// 3. The LHS hole, `?A`, doesn't occur in the RHS, `B`. -// If it is successful, it outputs the following substitution: -// ?A = λx λy λz ... B -// In this checker, we don't allow holes to occur in solutions at all. - -// Unify.try : Term -> Term -> U60 -> (Checker U60) -> (Checker U60) -(Unify.try a b dep else) = - // Attempts to unify the pattern - (Maybe.match (Unify.solve a b dep Map.new) - // If successful, logs the solution - λkv(Pair.get kv λkλv - (Checker.bind (Checker.log (Solve k v dep)) λx - (Checker.pure 1))) - // Otherwise, signals to skip equality if this is a pattern - (If (Unify.skip a) - (Checker.pure 1) - (else))) - -// If LHS is a solveable pattern, generates its solution. -// Unify.solve : Term -> Term -> U60 -> (Map U60 Term) -> (Maybe (Pair nam Term)) -(Unify.solve (App fun (Var nam idx)) b dep ctx) = - (Maybe.bind (Map.ins λaλb(== a b) idx $x ctx) λctx - (Maybe.bind (Unify.solve fun b dep ctx) λkv - (Pair.get kv λkλv(Maybe.pure (Pair k (Lam nam λ$x(v))))))) -(Unify.solve (Met nam None) b dep ctx) = - (Maybe.bind (Unify.solution b dep nam ctx) λneo - (Maybe.pure (Pair nam neo))) -(Unify.solve (App fun (Ann val _)) b dep ctx) = (Unify.solve (App fun val) b dep ctx) -(Unify.solve (App fun (Ins val)) b dep ctx) = (Unify.solve (App fun val) b dep ctx) -(Unify.solve (App fun (Src _ val)) b dep ctx) = (Unify.solve (App fun val) b dep ctx) -(Unify.solve (App fun (Met _ (Some val))) b dep ctx) = (Unify.solve (App fun val) b dep ctx) -(Unify.solve (Ann val typ) b dep ctx) = (Unify.solve val b dep ctx) -(Unify.solve (Ins val) b dep ctx) = (Unify.solve val b dep ctx) -(Unify.solve (Src src val) b dep ctx) = (Unify.solve val b dep ctx) -(Unify.solve (Met nam (Some val)) b dep ctx) = (Unify.solve val b dep ctx) -(Unify.solve other b dep ctx) = None - -// If LHS is an unsolveable pattern, skips its type-checking. -// Unify.skip : Term -> Bool -(Unify.skip (App fun arg)) = (Unify.skip fun) -(Unify.skip (Ann val typ)) = (Unify.skip val) -(Unify.skip (Ins val)) = (Unify.skip val) -(Unify.skip (Src src val)) = (Unify.skip val) -(Unify.skip (Met nam None)) = 1 -(Unify.skip (Hol nam ctx)) = 1 -(Unify.skip other) = 0 - -// Attempts to convert RHS to a solution, checking the criteria. -// Unify.solution : Term -> U60 -> String -> (Map U60 Term) -> (Maybe Term) -(Unify.solution (All nam inp bod) dep hol ctx) = - (Maybe.bind (Unify.solution inp dep hol ctx) λinp - (Maybe.bind (Unify.solution (bod (Var nam dep)) (+ dep 1) hol ctx) λbod - (Maybe.pure (All nam inp λ_(bod))))) -(Unify.solution (Lam nam bod) dep hol ctx) = - (Maybe.bind (Unify.solution (bod (Var nam dep)) (+ 1 dep) hol ctx) λbod - (Maybe.pure (Lam nam λ_(bod)))) -(Unify.solution (App fun arg) dep hol ctx) = - (Maybe.bind (Unify.solution fun dep hol ctx) λfun - (Maybe.bind (Unify.solution arg dep hol ctx) λarg - (Maybe.pure (App fun arg)))) -(Unify.solution (Ann val typ) dep hol ctx) = - (Maybe.bind (Unify.solution val dep hol ctx) λval - (Maybe.bind (Unify.solution typ dep hol ctx) λtyp - (Maybe.pure (Ann val typ)))) -(Unify.solution (Slf nam typ bod) dep hol ctx) = - (Unify.solution typ dep hol ctx) -(Unify.solution (Ins val) dep hol ctx) = - (Maybe.bind (Unify.solution val dep hol ctx) λval - (Maybe.pure (Ins val))) -(Unify.solution (Ref nam sub val) dep hol ctx) = - (Maybe.pure (Ref nam sub val)) -(Unify.solution (Let nam val bod) dep hol ctx) = - (Maybe.bind (Unify.solution val dep hol ctx) λval - (Maybe.bind (Unify.solution (bod (Var nam dep)) (+ 1 dep) hol ctx) λbod - (Maybe.pure (Let nam val λ_(bod))))) -(Unify.solution (Met nam None) dep hol ctx) = - None // holes can't appear in the solution - //(If (Same nam hol) None (Maybe.pure (Met nam None))) -(Unify.solution (Met nam (Some val)) dep hol ctx) = - (Maybe.bind (Unify.solution val dep hol ctx) λval - (Maybe.pure (Met nam (Some val)))) -(Unify.solution (Hol nam _) dep hol ctx) = - (Maybe.pure (Hol nam [])) // FIXME? -(Unify.solution Set dep hol ctx) = - (Maybe.pure Set) -(Unify.solution U60 dep hol ctx) = - (Maybe.pure U60) -(Unify.solution (Num val) dep hol ctx) = - (Maybe.pure (Num val)) -(Unify.solution (Op2 opr fst snd) dep hol ctx) = - (Maybe.bind (Unify.solution fst dep hol ctx) λfst - (Maybe.bind (Unify.solution snd dep hol ctx) λsnd - (Maybe.pure (Op2 opr fst snd)))) -(Unify.solution (Mat nam x z s p) dep hol ctx) = - (Maybe.bind (Unify.solution x dep hol ctx) λx - (Maybe.bind (Unify.solution z dep hol ctx) λz - (Maybe.bind (Unify.solution (s (Var (String.concat nam "-1") dep)) dep hol ctx) λs - (Maybe.bind (Unify.solution (p (Var nam dep)) dep hol ctx) λp - (Maybe.pure (Mat nam x z λ_(s) λ_(p))))))) -(Unify.solution (Txt val) dep hol ctx) = - (Maybe.pure (Txt val)) -(Unify.solution (Var nam idx) dep hol ctx) = - (Maybe.bind (Map.get λaλb(== a b) idx ctx) λval - (Maybe.pure val)) -(Unify.solution (Src src val) dep hol ctx) = - (Maybe.bind (Unify.solution val dep hol ctx) λval - (Maybe.pure (Src src val))) -(Unify.solution term dep hol ctx) = - (HVM.log (UNREACHALBE (Show term dep)) None) - -// Type-Checking -// ------------- - -(IfAll (All nam inp bod) yep nop) = (yep nam inp bod) -(IfAll other yep nop) = nop - -(IfSlf (Slf nam typ bod) yep nop) = (yep nam typ bod) -(IfSlf other yep nop) = nop - -//(Infer term dep) = (Print dep ["Infer: " (Show term dep)] (Infer.match term dep)) -(Infer term dep) = (Infer.match term dep) - -(Infer.match (All nam inp bod) dep) = - (Checker.bind (Check 0 inp Set dep) λinp_typ - (Checker.bind (Check 0 (bod (Ann (Var nam dep) inp)) Set (+ 1 dep)) λbod_typ - (Checker.pure Set))) -(Infer.match (App fun arg) dep) = - (Checker.bind (Infer fun dep) λfun_typ - ((IfAll (Reduce 2 fun_typ) - λfun_nam λfun_typ.inp λfun_typ.bod λfun λarg - (Checker.bind (Check 0 arg fun_typ.inp dep) λvty - (Checker.pure (fun_typ.bod arg))) - λfun λarg - (Checker.fail (Error 0 fun_typ (Hol "function" []) (App fun arg) dep))) - fun arg)) -(Infer.match (Ann val typ) dep) = - (Checker.pure typ) -(Infer.match (Slf nam typ bod) dep) = - (Checker.bind (Check 0 (bod (Ann (Var nam dep) typ)) Set (+ dep 1)) λslf - (Checker.pure Set)) -(Infer.match (Ins val) dep) = - (Checker.bind (Infer val dep) λvty - ((IfSlf (Reduce 2 vty) - λvty.nam λvty.typ λvty.bod λval - (Checker.pure (vty.bod (Ins val))) - λval - (Checker.fail (Error 0 vty (Hol "self-type" []) (Ins val) dep))) - val)) -(Infer.match (Ref nam sub val) dep) = - (Infer val dep) -(Infer.match Set dep) = - (Checker.pure Set) -(Infer.match U60 dep) = - (Checker.pure Set) -(Infer.match (Num num) dep) = - (Checker.pure U60) -(Infer.match (Txt txt) dep) = - (Checker.pure Book.String) -(Infer.match (Op2 opr fst snd) dep) = - (Checker.bind (Check 0 fst U60 dep) λfst - (Checker.bind (Check 0 snd U60 dep) λsnd - (Checker.pure U60))) -(Infer.match (Mat nam x z s p) dep) = - (Checker.bind (Check 0 x U60 dep) λx_typ - (Checker.bind (Check 0 (p (Ann (Var nam dep) U60)) Set dep) λp_typ - (Checker.bind (Check 0 z (p (Num 0)) dep) λz_typ - (Checker.bind (Check 0 (s (Ann (Var (String.concat nam "-1") dep) U60)) (p (Op2 ADD (Num 1) (Var (String.concat nam "-1") dep))) (+ dep 1)) λs_typ - (Checker.pure (p x)))))) -(Infer.match (Lam nam bod) dep) = - (Checker.fail (Error 0 (Hol "untyped_term" []) (Hol "type_annotation" []) (Lam nam bod) dep)) -(Infer.match (Let nam val bod) dep) = - (Checker.fail (Error 0 (Hol "untyped_term" []) (Hol "type_annotation" []) (Let nam val bod) dep)) -(Infer.match (Hol nam ctx) dep) = - (Checker.fail (Error 0 (Hol "untyped_term" []) (Hol "type_annotation" []) (Hol nam ctx) dep)) -(Infer.match (Met nam (Some val)) dep) = - (Infer.match val dep) -(Infer.match (Met nam None) dep) = - (Checker.fail (Error 0 (Hol "untyped_term" []) (Hol "type_annotation" []) (Met nam None) dep)) -(Infer.match (Var nam idx) dep) = - (Checker.fail (Error 0 (Hol "untyped_term" []) (Hol "type_annotation" []) (Var nam idx) dep)) -(Infer.match (Src src val) dep) = - (Infer.match val dep) - -//(Check src term type dep) = (Print dep ["Check: " (Show term dep) " :: " (Show type dep) " ~> " (Show (Reduce 1 type) dep)] (Check.match src term type dep)) -(Check src term type dep) = (Check.match src term type dep) - -(Check.match src (Lam term.nam term.bod) type dep) = - ((IfAll (Reduce 2 type) - λtype.nam λtype.inp λtype.bod λterm.bod - let ann = (Ann (Var term.nam dep) type.inp) - let term = (term.bod ann) - let type = (type.bod ann) - (Check 0 term type (+ dep 1)) - λterm.bod - (Infer (Lam term.nam term.bod) dep)) - term.bod) -(Check.match src (Ins term.val) type dep) = - ((IfSlf (Reduce 2 type) - λtype.nam λtype.typ λtype.bod λterm.val - (Check 0 term.val (type.bod (Ins term.val)) dep) - λterm.val - (Infer (Ins term.val) dep)) - term.val) -(Check.match src (Let term.nam term.val term.bod) type dep) = - (Check 0 (term.bod term.val) type (+ 1 dep)) -(Check.match src (Hol term.nam term.ctx) type dep) = - (Checker.bind (Checker.log (Found term.nam type term.ctx dep)) λx - (Checker.pure 0)) -(Check.match src (Met term.nam (Some term.val)) type dep) = - (Check src term.val type dep) -(Check.match src (Met term.nam None) type dep) = - (Checker.pure 0) -(Check.match src (Ref term.nam term.sub (Ann term.val term.typ)) type dep) = // better printing - (Checker.bind (Equal type term.typ dep) λequal - (Check.report src equal term.typ type (Ref term.nam term.sub term.val) dep)) -(Check.match src (Src term.src term.val) type dep) = - (Check term.src term.val type dep) -//(Check.match src (Ref term.nam term.val) type dep) = - //(Check term.val type dep) -(Check.match src term type dep) = - (Check.verify src term type dep) - -(Check.verify src term type dep) = - (Checker.bind (Infer term dep) λinfer - (Checker.bind (Equal type infer dep) λequal - (Check.report src equal infer type term dep))) - -(Check.report src 0 detected expected value dep) = - (Checker.fail (Error src detected expected value dep)) -(Check.report src n detected expected value dep) = - (Checker.pure 0) - -// Syntax -// ------ - -(Show (All nam inp bod) dep) = - let nam = nam - let inp = (Show inp dep) - let bod = (Show (bod (Var nam dep)) (+ dep 1)) - (String.join ["∀(" nam ": " inp ") " bod]) -(Show (Lam nam bod) dep) = - let nam = nam - let bod = (Show (bod (Var nam dep)) (+ dep 1)) - (String.join ["λ" nam " " bod]) -(Show (App fun arg) dep) = - let fun = (Show.unwrap (Show fun dep)) - let arg = (Show arg dep) - (String.join ["(" fun " " arg ")"]) -(Show (Ann val typ) dep) = - let val = (Show val dep) - let typ = (Show typ dep) - (String.join ["{" val ": " typ "}"]) -(Show (Slf nam typ bod) dep) = - let nam = nam - let typ = (Show typ dep) - let bod = (Show (bod (Var nam dep)) (+ dep 1)) - (String.join ["$(" nam ": " typ ") " bod]) -(Show (Ins val) dep) = - let val = (Show val dep) - (String.join ["~" val]) -(Show (Ref nam sub val) dep) = - nam -(Show (Let nam val bod) dep) = - let nam = nam - let val = (Show val dep) - let bod = (Show (bod (Var nam dep)) (+ dep 1)) - (String.join ["let " nam " = " val "; " bod]) -(Show Set dep) = - "*" -(Show U60 dep) = - "#U60" -(Show (Num val) dep) = - let val = (U60.show val) - (String.join ["#" val]) -(Show (Op2 opr fst snd) dep) = - let opr = (Op2.show opr) - let fst = (Show fst dep) - let snd = (Show snd dep) - (String.join ["#(" opr " " fst " " snd ")"]) -(Show (Mat nam x z s p) dep) = - let nam = nam - let x = (Show x dep) - let z = (Show z dep) - let s = (Show (s (Var (String.concat nam "-1") dep)) (+ dep 1)) - let p = (Show (p (Var nam dep)) dep) - (String.join ["#match " nam " = " x " { #0: " z " #+: " s " }: " p]) -(Show (Txt txt) dep) = - (String.join [Quote txt Quote]) -(Show (Hol nam ctx) dep) = - (String.join ["? " nam]) -(Show (Met nam None) dep) = - "_" -(Show (Met nam (Some val)) dep) = - (Show val dep) -(Show (Var nam idx) dep) = - nam -(Show (Src src val) dep) = - (Show val dep) - -//(Show.many List.nil dep) = "" -//(Show.many (List.cons x xs) dep) = (String.join [" " (Show x dep) (Show.many xs dep)]) - -(Show.trim (String.cons ' ' xs)) = xs -(Show.trim str) = str - -(Show.unwrap (String.cons '(' xs)) = (Show.begin xs) -(Show.unwrap str) = str - -(Show.begin (String.cons x (String.cons y String.nil))) = (String.cons x String.nil) -(Show.begin (String.cons x xs)) = (String.cons x (Show.begin xs)) -(Show.begin String.nil) = String.nil - -(Op2.show ADD) = "+" -(Op2.show SUB) = "-" -(Op2.show MUL) = "*" -(Op2.show DIV) = "/" -(Op2.show MOD) = "%" -(Op2.show EQ) = "==" -(Op2.show NE) = "!=" -(Op2.show LT) = "<" -(Op2.show GT) = ">" -(Op2.show LTE) = "<=" -(Op2.show GTE) = ">=" -(Op2.show AND) = "&" -(Op2.show OR) = "|" -(Op2.show XOR) = "^" -(Op2.show LSH) = "<<" -(Op2.show RSH) = ">>" - -(Context.show List.nil dep) = "" -(Context.show (List.cons x xs) dep) = (String.join [" " (Context.show.ann x dep) (Context.show xs dep)]) - -(Context.show.ann (Ann val typ) dep) = (String.join ["{" (Show (Normal 0 val dep) dep) ": " (Show (Normal 0 typ dep) dep) "}"]) -(Context.show.ann term dep) = (Show (Normal 0 term dep) dep) - -(Message.show (Found name type ctx dep)) = - let type = (Show (Normal 1 type dep) dep) - let ctx = (String.tail (Context.show ctx dep)) - (String.join ["#found{" name " " type " [" ctx "]}"]) -(Message.show (Error src detected expected value dep)) = - let det = (Show (Normal 1 detected dep) dep) - let exp = (Show (Normal 1 expected dep) dep) - let val = (Show (Normal 0 value dep) dep) - (String.join ["#error{" exp " " det " " val " " (U60.show src) "}"]) -(Message.show (Solve name term dep)) = - let term = (Show (Normal 1 term dep) dep) - (String.join ["#solve{" name " " term "}"]) -(Message.show (Vague name)) = - (String.join ["#vague{" name "}"]) - -// Compilation -// ----------- - -(Str.view str) = (str 0 λheadλtail(String.cons head (Str.view tail)) String.nil) - -(Str.make (String.cons x xs)) = λP λcons λnil (cons x (Str.make xs)) -(Str.make String.nil) = λP λcons λnil nil - -Compile.primitives = [ - (Pair "HVM.log" λA λB λmsg λret (HVM.log msg ret)) - (Pair "HVM.print" λA λmsg λret (HVM.print (Str.view msg) ret)) - (Pair "HVM.save" λA λname λdata λret (HVM.save (Str.view name) (Str.view data) ret)) - (Pair "HVM.load" λA λname λret (HVM.load (Str.view name) λdata (ret (Str.make data)))) -] - -(Compile (All nam inp bod)) = 0 -(Compile (Lam nam bod)) = λx(Compile (bod (Var "" x))) -(Compile (App fun arg)) = ((Compile fun) (Compile arg)) -(Compile (Ann val typ)) = (Compile val) -(Compile (Slf nam typ bod)) = 0 -(Compile (Ins val)) = (Compile val) -(Compile (Ref nam sub val)) = (Compile.ref Compile.primitives nam val) -(Compile (Let nam val bod)) = (Compile (bod val)) -(Compile Set) = 0 -(Compile U60) = 0 -(Compile (Num val)) = val -(Compile (Op2 opr fst snd)) = (Compile.op2 opr (Compile fst) (Compile snd)) -(Compile (Mat nam x z s p)) = (Compile.mat (Compile x) (Compile z) λx(Compile (s (Var "" x)))) -(Compile (Txt txt)) = (Str.make txt) -(Compile (Hol nam ctx)) = 0 -(Compile (Var nam val)) = val -(Compile (Src src val)) = (Compile val) - -//(Compile.txt (String.cons x xs)) = (App (App Book.String.cons (Num x)) (Compile.txt xs)) -//(Compile.txt String.nil) = Book.String.nil - -(Compile.op2 ADD fst snd) = (+ fst snd) -(Compile.op2 SUB fst snd) = (- fst snd) -(Compile.op2 MUL fst snd) = (* fst snd) -(Compile.op2 DIV fst snd) = (/ fst snd) -(Compile.op2 MOD fst snd) = (% fst snd) -(Compile.op2 EQ fst snd) = (== fst snd) -(Compile.op2 NE fst snd) = (!= fst snd) -(Compile.op2 LT fst snd) = (< fst snd) -(Compile.op2 GT fst snd) = (> fst snd) -(Compile.op2 LTE fst snd) = (<= fst snd) -(Compile.op2 GTE fst snd) = (>= fst snd) -(Compile.op2 AND fst snd) = (& fst snd) -(Compile.op2 OR fst snd) = (| fst snd) -(Compile.op2 XOR fst snd) = (^ fst snd) -(Compile.op2 LSH fst snd) = (<< fst snd) -(Compile.op2 RSH fst snd) = (>> fst snd) - -(Compile.mat 0 z s) = z -(Compile.mat n z s) = (s (- n 1)) - -(Compile.ref (List.cons (Pair prim_name prim_func) prims) nam val) = (If (Same prim_name nam) prim_func (Compile.ref prims nam val)) -(Compile.ref List.nil nam val) = (Compile val) - -// API -// --- - -// Normalizes a definition. -(API.normal (Ref nam sub val)) = - (Compile (Subst sub val)) - -// Checks a definition. -(API.check (Ref nam sub def)) = - //(HVM.print (String.join ["API.check: " (Show (Subst sub def) 0)]) - (Result.match (Checker.run (API.check.do (Subst sub def))) - // case done: - λlogs λvalue - //(API.check.log logs - (Pair.get (API.check.fill sub logs) λfilled λsub - (If filled - // case true: - (API.check (Ref nam sub def)) - // case false: - (API.check.vague sub))) - // case fail: - λlogs λerror - (API.check.log logs - (API.check.log [error] 0))) - -// Calls the type-checker *under* the metavar binders. -//(API.check.fn (List.cons _ subs) val) = λx (API.check.fn subs (val x)) -//(API.check.fn List.nil val) = (API.check.do val) - -// Calls check on typed defs and infer on untyped defs. -(API.check.do (Ann val typ)) = (Check 0 val typ 0) -(API.check.do val) = (Infer val 0) - -// Moves solutions from the checker logs to a ref's subst list. -(API.check.fill sub (List.cons (Solve k v d) xs)) = (Pair.get (API.check.fill sub xs) λokλmap(Pair 1 (Map.set λxλy(Same x y) k (Some v) sub))) -(API.check.fill sub (List.cons message xs)) = (API.check.fill sub xs) -(API.check.fill sub List.nil) = (Pair 0 sub) - -// Prints all messages returned by the checker. -(API.check.log (List.cons msg msgs) then) = (HVM.print (Message.show msg) (API.check.log msgs then)) -(API.check.log List.nil then) = then - -// Reports solved holdes -(API.check.vague (List.cons (Pair name None) xs)) = (HVM.print (Message.show (Vague name)) (& 0 (API.check.vague xs))) -(API.check.vague (List.cons (Pair name (Some x)) xs)) = (API.check.vague xs) -(API.check.vague List.nil) = 1 - -Book.Bool = (Ref "Bool" [] (Ann (Src 51677058039917 (Slf "self" (Src 51677066428439 (Book.Bool)) λxself (Src 51677074817133 (All "P" (Src 51677082157104 (All "x" (Src 51677089497133 (Book.Bool)) λxx (Src 51677095788592 (Set)))) λxP (Src 51677101031533 (All "t" (Src 51677108371528 (App (Src 51677109420093 xP) (Src 51677111517255 (Book.Bool.true)))) λxt (Src 51677126197357 (All "f" (Src 51677133537377 (App (Src 51677134585941 xP) (Src 51677136683104 (Book.Bool.false)))) λxf (Src 51677152411757 (App (Src 51677153460327 xP) (Src 51677155557484 xself))))))))))) (Src 51677053845512 (Set)))) -Book.Bool.and = (Ref "Bool.and" [] (Ann (Src 82463422415003 (Lam "a" λxa (Src 82463428706459 (Let "P" (Src 82463441289302 (Lam "a" λxa (Src 82463445483606 (All "b" (Src 82463451775056 (Book.Bool)) λxb (Src 82463458066518 (Book.Bool)))))) λxP (Src 82463465406619 (Let "true" (Src 82463477989482 (Lam "b" λxb (Src 82463482183786 xb))) λxtrue (Src 82463486378139 (Let "false" (Src 82463498961031 (Lam "b" λxb (Src 82463503155335 (Book.Bool.false)))) λxfalse (Src 82463516786843 (App (App (App (Src 82463517835405 (Ins (Src 82463518883981 xa))) (Src 82463520981135 xP)) (Src 82463523078292 xtrue)) (Src 82463528321178 xfalse))))))))))) (Src 82463383617581 (All "a" (Src 82463390957590 (Book.Bool)) λxa (Src 82463399346221 (All "b" (Src 82463406686245 (Book.Bool)) λxb (Src 82463415074861 (Book.Bool)))))))) -Book.Bool.false = (Ref "Bool.false" [] (Ann (Src 52776579104802 (Ins (Src 52776580153378 (Lam "P" λxP (Src 52776584347682 (Lam "t" λxt (Src 52776588541986 (Lam "f" λxf (Src 52776592736290 xf))))))))) (Src 52776571764753 (Book.Bool)))) -Book.Bool.true = (Ref "Bool.true" [] (Ann (Src 50577554800673 (Ins (Src 50577555849249 (Lam "P" λxP (Src 50577560043553 (Lam "t" λxt (Src 50577564237857 (Lam "f" λxf (Src 50577568432161 xt))))))))) (Src 50577547460624 (Book.Bool)))) -Book.Char = (Ref "Char" [] (Ann (Src 25288778973199 (U60)) (Src 25288774778888 (Set)))) -Book.Kind.Book.String = (Ref "Kind.Book.String" [] (Ann (Src 57174637150277 (App (App (Src 57174638198824 (Book.Kind.hol)) (Src 57174647636015 (Txt "TODO"))) (Src 57174654976068 (App (Src 57174656024633 (Book.List.nil)) (Src 57174665461827 (Book.Kind.Term)))))) (Src 57174624567324 (Book.Kind.Term)))) -Book.Kind.Book.String.cons = (Ref "Kind.Book.String.cons" [] (Ann (Src 67070247043146 (App (App (Src 67070248091693 (Book.Kind.hol)) (Src 67070257528884 (Txt "TODO"))) (Src 67070264868937 (App (Src 67070265917502 (Book.List.nil)) (Src 67070275354696 (Book.Kind.Term)))))) (Src 67070234460193 (Book.Kind.Term)))) -Book.Kind.Book.String.nil = (Ref "Kind.Book.String.nil" [] (Ann (Src 68169757622345 (App (App (Src 68169758670892 (Book.Kind.hol)) (Src 68169768108083 (Txt "TODO"))) (Src 68169775448136 (App (Src 68169776496701 (Book.List.nil)) (Src 68169785933895 (Book.Kind.Term)))))) (Src 68169745039392 (Book.Kind.Term)))) -Book.Kind.Oper = (Ref "Kind.Oper" [] (Ann (Src 4398063288870 (Slf "self" (Src 4398071676961 (Book.Kind.Oper)) λxself (Src 4398085308966 (All "P" (Src 4398092648511 (All "x" (Src 4398099988540 (Book.Kind.Oper)) λxx (Src 4398111522879 (Set)))) λxP (Src 4398116766246 (All "add" (Src 4398126202973 (App (Src 4398127251534 xP) (Src 4398129348700 (Book.Kind.Oper.add)))) λxadd (Src 4398148223526 (All "mul" (Src 4398157660283 (App (Src 4398158708844 xP) (Src 4398160806010 (Book.Kind.Oper.mul)))) λxmul (Src 4398179680806 (All "sub" (Src 4398189117593 (App (Src 4398190166154 xP) (Src 4398192263320 (Book.Kind.Oper.sub)))) λxsub (Src 4398211138086 (All "div" (Src 4398220574903 (App (Src 4398221623464 xP) (Src 4398223720630 (Book.Kind.Oper.div)))) λxdiv (Src 4398242595366 (All "mod" (Src 4398252032213 (App (Src 4398253080774 xP) (Src 4398255177940 (Book.Kind.Oper.mod)))) λxmod (Src 4398274052646 (All "eq" (Src 4398283489522 (App (Src 4398284538084 xP) (Src 4398286635249 (Book.Kind.Oper.eq)))) λxeq (Src 4398304461350 (All "ne" (Src 4398313898255 (App (Src 4398314946817 xP) (Src 4398317043982 (Book.Kind.Oper.ne)))) λxne (Src 4398334870054 (All "lt" (Src 4398344306988 (App (Src 4398345355550 xP) (Src 4398347452715 (Book.Kind.Oper.lt)))) λxlt (Src 4398365278758 (All "gt" (Src 4398374715721 (App (Src 4398375764283 xP) (Src 4398377861448 (Book.Kind.Oper.gt)))) λxgt (Src 4398395687462 (All "lte" (Src 4398405124455 (App (Src 4398406173016 xP) (Src 4398408270182 (Book.Kind.Oper.lte)))) λxlte (Src 4398427144742 (All "gte" (Src 4398436581765 (App (Src 4398437630326 xP) (Src 4398439727492 (Book.Kind.Oper.gte)))) λxgte (Src 4398458602022 (All "and" (Src 4398468039075 (App (Src 4398469087636 xP) (Src 4398471184802 (Book.Kind.Oper.and)))) λxand (Src 4398490059302 (All "or" (Src 4398499496384 (App (Src 4398500544946 xP) (Src 4398502642111 (Book.Kind.Oper.or)))) λxor (Src 4398520468006 (All "xor" (Src 4398529905118 (App (Src 4398530953679 xP) (Src 4398533050845 (Book.Kind.Oper.xor)))) λxxor (Src 4398551925286 (All "lsh" (Src 4398561362428 (App (Src 4398562410989 xP) (Src 4398564508155 (Book.Kind.Oper.lsh)))) λxlsh (Src 4398583382566 (All "rsh" (Src 4398592819738 (App (Src 4398593868299 xP) (Src 4398595965465 (Book.Kind.Oper.rsh)))) λxrsh (Src 4398614839846 (App (Src 4398615888416 xP) (Src 4398617985573 xself))))))))))))))))))))))))))))))))))))))) (Src 4398059094029 (Set)))) -Book.Kind.Oper.add = (Ref "Kind.Oper.add" [] (Ann (Src 5497587499139 (Ins (Src 5497588547715 (Lam "P" λxP (Src 5497592742019 (Lam "add" λxadd (Src 5497599033475 (Lam "mul" λxmul (Src 5497605324931 (Lam "sub" λxsub (Src 5497611616387 (Lam "div" λxdiv (Src 5497617907843 (Lam "mod" λxmod (Src 5497624199299 (Lam "eq" λxeq (Src 5497629442179 (Lam "ne" λxne (Src 5497634685059 (Lam "lt" λxlt (Src 5497639927939 (Lam "gt" λxgt (Src 5497645170819 (Lam "lte" λxlte (Src 5497651462275 (Lam "gte" λxgte (Src 5497657753731 (Lam "and" λxand (Src 5497664045187 (Lam "or" λxor (Src 5497669288067 (Lam "xor" λxxor (Src 5497675579523 (Lam "lsh" λxlsh (Src 5497681870979 (Lam "rsh" λxrsh (Src 5497690259587 (Src 5497691308162 xadd)))))))))))))))))))))))))))))))))))))) (Src 5497574916121 (Book.Kind.Oper)))) -Book.Kind.Oper.and = (Ref "Kind.Oper.and" [] (Ann (Src 6597099126915 (Ins (Src 6597100175491 (Lam "P" λxP (Src 6597104369795 (Lam "add" λxadd (Src 6597110661251 (Lam "mul" λxmul (Src 6597116952707 (Lam "sub" λxsub (Src 6597123244163 (Lam "div" λxdiv (Src 6597129535619 (Lam "mod" λxmod (Src 6597135827075 (Lam "eq" λxeq (Src 6597141069955 (Lam "ne" λxne (Src 6597146312835 (Lam "lt" λxlt (Src 6597151555715 (Lam "gt" λxgt (Src 6597156798595 (Lam "lte" λxlte (Src 6597163090051 (Lam "gte" λxgte (Src 6597169381507 (Lam "and" λxand (Src 6597175672963 (Lam "or" λxor (Src 6597180915843 (Lam "xor" λxxor (Src 6597187207299 (Lam "lsh" λxlsh (Src 6597193498755 (Lam "rsh" λxrsh (Src 6597201887363 (Src 6597202935938 xand)))))))))))))))))))))))))))))))))))))) (Src 6597086543897 (Book.Kind.Oper)))) -Book.Kind.Oper.div = (Ref "Kind.Oper.div" [] (Ann (Src 7696610754691 (Ins (Src 7696611803267 (Lam "P" λxP (Src 7696615997571 (Lam "add" λxadd (Src 7696622289027 (Lam "mul" λxmul (Src 7696628580483 (Lam "sub" λxsub (Src 7696634871939 (Lam "div" λxdiv (Src 7696641163395 (Lam "mod" λxmod (Src 7696647454851 (Lam "eq" λxeq (Src 7696652697731 (Lam "ne" λxne (Src 7696657940611 (Lam "lt" λxlt (Src 7696663183491 (Lam "gt" λxgt (Src 7696668426371 (Lam "lte" λxlte (Src 7696674717827 (Lam "gte" λxgte (Src 7696681009283 (Lam "and" λxand (Src 7696687300739 (Lam "or" λxor (Src 7696692543619 (Lam "xor" λxxor (Src 7696698835075 (Lam "lsh" λxlsh (Src 7696705126531 (Lam "rsh" λxrsh (Src 7696713515139 (Src 7696714563714 xdiv)))))))))))))))))))))))))))))))))))))) (Src 7696598171673 (Book.Kind.Oper)))) -Book.Kind.Oper.eq = (Ref "Kind.Oper.eq" [] (Ann (Src 8796121333889 (Ins (Src 8796122382465 (Lam "P" λxP (Src 8796126576769 (Lam "add" λxadd (Src 8796132868225 (Lam "mul" λxmul (Src 8796139159681 (Lam "sub" λxsub (Src 8796145451137 (Lam "div" λxdiv (Src 8796151742593 (Lam "mod" λxmod (Src 8796158034049 (Lam "eq" λxeq (Src 8796163276929 (Lam "ne" λxne (Src 8796168519809 (Lam "lt" λxlt (Src 8796173762689 (Lam "gt" λxgt (Src 8796179005569 (Lam "lte" λxlte (Src 8796185297025 (Lam "gte" λxgte (Src 8796191588481 (Lam "and" λxand (Src 8796197879937 (Lam "or" λxor (Src 8796203122817 (Lam "xor" λxxor (Src 8796209414273 (Lam "lsh" λxlsh (Src 8796215705729 (Lam "rsh" λxrsh (Src 8796224094337 (Src 8796225142912 xeq)))))))))))))))))))))))))))))))))))))) (Src 8796108750872 (Book.Kind.Oper)))) -Book.Kind.Oper.gt = (Ref "Kind.Oper.gt" [] (Ann (Src 9895632961665 (Ins (Src 9895634010241 (Lam "P" λxP (Src 9895638204545 (Lam "add" λxadd (Src 9895644496001 (Lam "mul" λxmul (Src 9895650787457 (Lam "sub" λxsub (Src 9895657078913 (Lam "div" λxdiv (Src 9895663370369 (Lam "mod" λxmod (Src 9895669661825 (Lam "eq" λxeq (Src 9895674904705 (Lam "ne" λxne (Src 9895680147585 (Lam "lt" λxlt (Src 9895685390465 (Lam "gt" λxgt (Src 9895690633345 (Lam "lte" λxlte (Src 9895696924801 (Lam "gte" λxgte (Src 9895703216257 (Lam "and" λxand (Src 9895709507713 (Lam "or" λxor (Src 9895714750593 (Lam "xor" λxxor (Src 9895721042049 (Lam "lsh" λxlsh (Src 9895727333505 (Lam "rsh" λxrsh (Src 9895735722113 (Src 9895736770688 xgt)))))))))))))))))))))))))))))))))))))) (Src 9895620378648 (Book.Kind.Oper)))) -Book.Kind.Oper.gte = (Ref "Kind.Oper.gte" [] (Ann (Src 10995145638019 (Ins (Src 10995146686595 (Lam "P" λxP (Src 10995150880899 (Lam "add" λxadd (Src 10995157172355 (Lam "mul" λxmul (Src 10995163463811 (Lam "sub" λxsub (Src 10995169755267 (Lam "div" λxdiv (Src 10995176046723 (Lam "mod" λxmod (Src 10995182338179 (Lam "eq" λxeq (Src 10995187581059 (Lam "ne" λxne (Src 10995192823939 (Lam "lt" λxlt (Src 10995198066819 (Lam "gt" λxgt (Src 10995203309699 (Lam "lte" λxlte (Src 10995209601155 (Lam "gte" λxgte (Src 10995215892611 (Lam "and" λxand (Src 10995222184067 (Lam "or" λxor (Src 10995227426947 (Lam "xor" λxxor (Src 10995233718403 (Lam "lsh" λxlsh (Src 10995240009859 (Lam "rsh" λxrsh (Src 10995248398467 (Src 10995249447042 xgte)))))))))))))))))))))))))))))))))))))) (Src 10995133055001 (Book.Kind.Oper)))) -Book.Kind.Oper.lsh = (Ref "Kind.Oper.lsh" [] (Ann (Src 12094657265795 (Ins (Src 12094658314371 (Lam "P" λxP (Src 12094662508675 (Lam "add" λxadd (Src 12094668800131 (Lam "mul" λxmul (Src 12094675091587 (Lam "sub" λxsub (Src 12094681383043 (Lam "div" λxdiv (Src 12094687674499 (Lam "mod" λxmod (Src 12094693965955 (Lam "eq" λxeq (Src 12094699208835 (Lam "ne" λxne (Src 12094704451715 (Lam "lt" λxlt (Src 12094709694595 (Lam "gt" λxgt (Src 12094714937475 (Lam "lte" λxlte (Src 12094721228931 (Lam "gte" λxgte (Src 12094727520387 (Lam "and" λxand (Src 12094733811843 (Lam "or" λxor (Src 12094739054723 (Lam "xor" λxxor (Src 12094745346179 (Lam "lsh" λxlsh (Src 12094751637635 (Lam "rsh" λxrsh (Src 12094760026243 (Src 12094761074818 xlsh)))))))))))))))))))))))))))))))))))))) (Src 12094644682777 (Book.Kind.Oper)))) -Book.Kind.Oper.lt = (Ref "Kind.Oper.lt" [] (Ann (Src 13194167844993 (Ins (Src 13194168893569 (Lam "P" λxP (Src 13194173087873 (Lam "add" λxadd (Src 13194179379329 (Lam "mul" λxmul (Src 13194185670785 (Lam "sub" λxsub (Src 13194191962241 (Lam "div" λxdiv (Src 13194198253697 (Lam "mod" λxmod (Src 13194204545153 (Lam "eq" λxeq (Src 13194209788033 (Lam "ne" λxne (Src 13194215030913 (Lam "lt" λxlt (Src 13194220273793 (Lam "gt" λxgt (Src 13194225516673 (Lam "lte" λxlte (Src 13194231808129 (Lam "gte" λxgte (Src 13194238099585 (Lam "and" λxand (Src 13194244391041 (Lam "or" λxor (Src 13194249633921 (Lam "xor" λxxor (Src 13194255925377 (Lam "lsh" λxlsh (Src 13194262216833 (Lam "rsh" λxrsh (Src 13194270605441 (Src 13194271654016 xlt)))))))))))))))))))))))))))))))))))))) (Src 13194155261976 (Book.Kind.Oper)))) -Book.Kind.Oper.lte = (Ref "Kind.Oper.lte" [] (Ann (Src 14293680521347 (Ins (Src 14293681569923 (Lam "P" λxP (Src 14293685764227 (Lam "add" λxadd (Src 14293692055683 (Lam "mul" λxmul (Src 14293698347139 (Lam "sub" λxsub (Src 14293704638595 (Lam "div" λxdiv (Src 14293710930051 (Lam "mod" λxmod (Src 14293717221507 (Lam "eq" λxeq (Src 14293722464387 (Lam "ne" λxne (Src 14293727707267 (Lam "lt" λxlt (Src 14293732950147 (Lam "gt" λxgt (Src 14293738193027 (Lam "lte" λxlte (Src 14293744484483 (Lam "gte" λxgte (Src 14293750775939 (Lam "and" λxand (Src 14293757067395 (Lam "or" λxor (Src 14293762310275 (Lam "xor" λxxor (Src 14293768601731 (Lam "lsh" λxlsh (Src 14293774893187 (Lam "rsh" λxrsh (Src 14293783281795 (Src 14293784330370 xlte)))))))))))))))))))))))))))))))))))))) (Src 14293667938329 (Book.Kind.Oper)))) -Book.Kind.Oper.mod = (Ref "Kind.Oper.mod" [] (Ann (Src 15393192149123 (Ins (Src 15393193197699 (Lam "P" λxP (Src 15393197392003 (Lam "add" λxadd (Src 15393203683459 (Lam "mul" λxmul (Src 15393209974915 (Lam "sub" λxsub (Src 15393216266371 (Lam "div" λxdiv (Src 15393222557827 (Lam "mod" λxmod (Src 15393228849283 (Lam "eq" λxeq (Src 15393234092163 (Lam "ne" λxne (Src 15393239335043 (Lam "lt" λxlt (Src 15393244577923 (Lam "gt" λxgt (Src 15393249820803 (Lam "lte" λxlte (Src 15393256112259 (Lam "gte" λxgte (Src 15393262403715 (Lam "and" λxand (Src 15393268695171 (Lam "or" λxor (Src 15393273938051 (Lam "xor" λxxor (Src 15393280229507 (Lam "lsh" λxlsh (Src 15393286520963 (Lam "rsh" λxrsh (Src 15393294909571 (Src 15393295958146 xmod)))))))))))))))))))))))))))))))))))))) (Src 15393179566105 (Book.Kind.Oper)))) -Book.Kind.Oper.mul = (Ref "Kind.Oper.mul" [] (Ann (Src 16492703776899 (Ins (Src 16492704825475 (Lam "P" λxP (Src 16492709019779 (Lam "add" λxadd (Src 16492715311235 (Lam "mul" λxmul (Src 16492721602691 (Lam "sub" λxsub (Src 16492727894147 (Lam "div" λxdiv (Src 16492734185603 (Lam "mod" λxmod (Src 16492740477059 (Lam "eq" λxeq (Src 16492745719939 (Lam "ne" λxne (Src 16492750962819 (Lam "lt" λxlt (Src 16492756205699 (Lam "gt" λxgt (Src 16492761448579 (Lam "lte" λxlte (Src 16492767740035 (Lam "gte" λxgte (Src 16492774031491 (Lam "and" λxand (Src 16492780322947 (Lam "or" λxor (Src 16492785565827 (Lam "xor" λxxor (Src 16492791857283 (Lam "lsh" λxlsh (Src 16492798148739 (Lam "rsh" λxrsh (Src 16492806537347 (Src 16492807585922 xmul)))))))))))))))))))))))))))))))))))))) (Src 16492691193881 (Book.Kind.Oper)))) -Book.Kind.Oper.ne = (Ref "Kind.Oper.ne" [] (Ann (Src 17592214356097 (Ins (Src 17592215404673 (Lam "P" λxP (Src 17592219598977 (Lam "add" λxadd (Src 17592225890433 (Lam "mul" λxmul (Src 17592232181889 (Lam "sub" λxsub (Src 17592238473345 (Lam "div" λxdiv (Src 17592244764801 (Lam "mod" λxmod (Src 17592251056257 (Lam "eq" λxeq (Src 17592256299137 (Lam "ne" λxne (Src 17592261542017 (Lam "lt" λxlt (Src 17592266784897 (Lam "gt" λxgt (Src 17592272027777 (Lam "lte" λxlte (Src 17592278319233 (Lam "gte" λxgte (Src 17592284610689 (Lam "and" λxand (Src 17592290902145 (Lam "or" λxor (Src 17592296145025 (Lam "xor" λxxor (Src 17592302436481 (Lam "lsh" λxlsh (Src 17592308727937 (Lam "rsh" λxrsh (Src 17592317116545 (Src 17592318165120 xne)))))))))))))))))))))))))))))))))))))) (Src 17592201773080 (Book.Kind.Oper)))) -Book.Kind.Oper.or = (Ref "Kind.Oper.or" [] (Ann (Src 18691725983873 (Ins (Src 18691727032449 (Lam "P" λxP (Src 18691731226753 (Lam "add" λxadd (Src 18691737518209 (Lam "mul" λxmul (Src 18691743809665 (Lam "sub" λxsub (Src 18691750101121 (Lam "div" λxdiv (Src 18691756392577 (Lam "mod" λxmod (Src 18691762684033 (Lam "eq" λxeq (Src 18691767926913 (Lam "ne" λxne (Src 18691773169793 (Lam "lt" λxlt (Src 18691778412673 (Lam "gt" λxgt (Src 18691783655553 (Lam "lte" λxlte (Src 18691789947009 (Lam "gte" λxgte (Src 18691796238465 (Lam "and" λxand (Src 18691802529921 (Lam "or" λxor (Src 18691807772801 (Lam "xor" λxxor (Src 18691814064257 (Lam "lsh" λxlsh (Src 18691820355713 (Lam "rsh" λxrsh (Src 18691828744321 (Src 18691829792896 xor)))))))))))))))))))))))))))))))))))))) (Src 18691713400856 (Book.Kind.Oper)))) -Book.Kind.Oper.rsh = (Ref "Kind.Oper.rsh" [] (Ann (Src 19791238660227 (Ins (Src 19791239708803 (Lam "P" λxP (Src 19791243903107 (Lam "add" λxadd (Src 19791250194563 (Lam "mul" λxmul (Src 19791256486019 (Lam "sub" λxsub (Src 19791262777475 (Lam "div" λxdiv (Src 19791269068931 (Lam "mod" λxmod (Src 19791275360387 (Lam "eq" λxeq (Src 19791280603267 (Lam "ne" λxne (Src 19791285846147 (Lam "lt" λxlt (Src 19791291089027 (Lam "gt" λxgt (Src 19791296331907 (Lam "lte" λxlte (Src 19791302623363 (Lam "gte" λxgte (Src 19791308914819 (Lam "and" λxand (Src 19791315206275 (Lam "or" λxor (Src 19791320449155 (Lam "xor" λxxor (Src 19791326740611 (Lam "lsh" λxlsh (Src 19791333032067 (Lam "rsh" λxrsh (Src 19791341420675 (Src 19791342469250 xrsh)))))))))))))))))))))))))))))))))))))) (Src 19791226077209 (Book.Kind.Oper)))) -Book.Kind.Oper.sub = (Ref "Kind.Oper.sub" [] (Ann (Src 20890750288003 (Ins (Src 20890751336579 (Lam "P" λxP (Src 20890755530883 (Lam "add" λxadd (Src 20890761822339 (Lam "mul" λxmul (Src 20890768113795 (Lam "sub" λxsub (Src 20890774405251 (Lam "div" λxdiv (Src 20890780696707 (Lam "mod" λxmod (Src 20890786988163 (Lam "eq" λxeq (Src 20890792231043 (Lam "ne" λxne (Src 20890797473923 (Lam "lt" λxlt (Src 20890802716803 (Lam "gt" λxgt (Src 20890807959683 (Lam "lte" λxlte (Src 20890814251139 (Lam "gte" λxgte (Src 20890820542595 (Lam "and" λxand (Src 20890826834051 (Lam "or" λxor (Src 20890832076931 (Lam "xor" λxxor (Src 20890838368387 (Lam "lsh" λxlsh (Src 20890844659843 (Lam "rsh" λxrsh (Src 20890853048451 (Src 20890854097026 xsub)))))))))))))))))))))))))))))))))))))) (Src 20890737704985 (Book.Kind.Oper)))) -Book.Kind.Oper.xor = (Ref "Kind.Oper.xor" [] (Ann (Src 21990261915779 (Ins (Src 21990262964355 (Lam "P" λxP (Src 21990267158659 (Lam "add" λxadd (Src 21990273450115 (Lam "mul" λxmul (Src 21990279741571 (Lam "sub" λxsub (Src 21990286033027 (Lam "div" λxdiv (Src 21990292324483 (Lam "mod" λxmod (Src 21990298615939 (Lam "eq" λxeq (Src 21990303858819 (Lam "ne" λxne (Src 21990309101699 (Lam "lt" λxlt (Src 21990314344579 (Lam "gt" λxgt (Src 21990319587459 (Lam "lte" λxlte (Src 21990325878915 (Lam "gte" λxgte (Src 21990332170371 (Lam "and" λxand (Src 21990338461827 (Lam "or" λxor (Src 21990343704707 (Lam "xor" λxxor (Src 21990349996163 (Lam "lsh" λxlsh (Src 21990356287619 (Lam "rsh" λxrsh (Src 21990364676227 (Src 21990365724802 xxor)))))))))))))))))))))))))))))))))))))) (Src 21990249332761 (Book.Kind.Oper)))) -Book.Kind.Term = (Ref "Kind.Term" [] (Ann (Src 3298551661853 (Slf "self" (Src 3298560049185 (Book.Kind.Term)) λxself (Src 3298573681949 (All "P" (Src 3298581020735 (All "x" (Src 3298588360764 (Book.Kind.Term)) λxx (Src 3298599895103 (Set)))) λxP (Src 3298605139229 (All "all" (Src 3298614575281 (All "nam" (Src 3298624012379 (Book.String)) λxnam (Src 3298632401073 (All "inp" (Src 3298641838191 (Book.Kind.Term)) λxinp (Src 3298653372593 (All "bod" (Src 3298662809749 (All "x" (Src 3298670149770 (Book.Kind.Term)) λxx (Src 3298681684117 (Book.Kind.Term)))) λxbod (Src 3298693218481 (App (Src 3298694267033 xP) (Src 3298696364208 (App (App (App (Src 3298697412771 (Book.Kind.all)) (Src 3298706849959 xnam)) (Src 3298711044267 xinp)) (Src 3298715238575 xbod))))))))))) λxall (Src 3298724676893 (All "lam" (Src 3298734113035 (All "nam" (Src 3298743550157 (Book.String)) λxnam (Src 3298751938827 (All "bod" (Src 3298761375987 (All "x" (Src 3298768716008 (Book.Kind.Term)) λxx (Src 3298780250355 (Book.Kind.Term)))) λxbod (Src 3298791784715 (App (Src 3298792833271 xP) (Src 3298794930442 (App (App (Src 3298795979009 (Book.Kind.lam)) (Src 3298805416197 xnam)) (Src 3298809610505 xbod))))))))) λxlam (Src 3298819048733 (All "app" (Src 3298828484950 (All "fun" (Src 3298837922090 (Book.Kind.Term)) λxfun (Src 3298849456470 (All "arg" (Src 3298858893630 (Book.Kind.Term)) λxarg (Src 3298870427990 (App (Src 3298871476546 xP) (Src 3298873573717 (App (App (Src 3298874622284 (Book.Kind.app)) (Src 3298884059472 xfun)) (Src 3298888253780 xarg))))))))) λxapp (Src 3298897691933 (All "ann" (Src 3298907128225 (All "val" (Src 3298916565365 (Book.Kind.Term)) λxval (Src 3298928099745 (All "typ" (Src 3298937536905 (Book.Kind.Term)) λxtyp (Src 3298949071265 (App (Src 3298950119821 xP) (Src 3298952216992 (App (App (Src 3298953265559 (Book.Kind.ann)) (Src 3298962702747 xval)) (Src 3298966897055 xtyp))))))))) λxann (Src 3298976335133 (All "slf" (Src 3298985771515 (All "nam" (Src 3298995208637 (Book.String)) λxnam (Src 3299003597307 (All "bod" (Src 3299013034467 (All "x" (Src 3299020374488 (Book.Kind.Term)) λxx (Src 3299031908835 (Book.Kind.Term)))) λxbod (Src 3299043443195 (App (Src 3299044491751 xP) (Src 3299046588922 (App (App (Src 3299047637489 (Book.Kind.slf)) (Src 3299057074677 xnam)) (Src 3299061268985 xbod))))))))) λxslf (Src 3299070706973 (All "ins" (Src 3299080143406 (All "val" (Src 3299089580570 (Book.Kind.Term)) λxval (Src 3299101114926 (App (Src 3299102163486 xP) (Src 3299104260653 (App (Src 3299105309224 (Book.Kind.ins)) (Src 3299114746412 xval))))))) λxins (Src 3299124184349 (All "ref" (Src 3299133620854 (All "nam" (Src 3299143057994 (Book.String)) λxnam (Src 3299151446646 (All "val" (Src 3299160883806 (Book.Kind.Term)) λxval (Src 3299172418166 (App (Src 3299173466722 xP) (Src 3299175563893 (App (App (Src 3299176612460 (Book.Kind.ref)) (Src 3299186049648 xnam)) (Src 3299190243956 xval))))))))) λxref (Src 3299199681821 (All "def" (Src 3299209118440 (All "nam" (Src 3299218555538 (Book.String)) λxnam (Src 3299226944232 (All "val" (Src 3299236381350 (Book.Kind.Term)) λxval (Src 3299247915752 (All "bod" (Src 3299257352908 (All "x" (Src 3299264692929 (Book.Kind.Term)) λxx (Src 3299276227276 (Book.Kind.Term)))) λxbod (Src 3299287761640 (App (Src 3299288810192 xP) (Src 3299290907367 (App (App (App (Src 3299291955930 (Book.Kind.def)) (Src 3299301393118 xnam)) (Src 3299305587426 xval)) (Src 3299309781734 xbod))))))))))) λxdef (Src 3299319219485 (All "set" (Src 3299328656129 (App (Src 3299329704695 xP) (Src 3299331801856 (Book.Kind.set)))) λxset (Src 3299345433885 (All "u60" (Src 3299354870554 (App (Src 3299355919120 xP) (Src 3299358016281 (Book.Kind.u60)))) λxu60 (Src 3299371648285 (All "num" (Src 3299381085000 (All "val" (Src 3299390522164 (U60)) λxval (Src 3299396813640 (App (Src 3299397862200 xP) (Src 3299399959367 (App (Src 3299401007938 (Book.Kind.num)) (Src 3299410445126 xval))))))) λxnum (Src 3299419882781 (All "op2" (Src 3299429319595 (All "opr" (Src 3299438756711 (Book.Kind.Oper)) λxopr (Src 3299450291115 (All "fst" (Src 3299459728251 (Book.Kind.Term)) λxfst (Src 3299471262635 (All "snd" (Src 3299480699791 (Book.Kind.Term)) λxsnd (Src 3299492234155 (App (Src 3299493282707 xP) (Src 3299495379882 (App (App (App (Src 3299496428445 (Book.Kind.op2)) (Src 3299505865633 xopr)) (Src 3299510059941 xfst)) (Src 3299514254249 xsnd))))))))))) λxop2 (Src 3299523691805 (All "mat" (Src 3299533128781 (All "nam" (Src 3299542565831 (Book.String)) λxnam (Src 3299550954573 (All "x" (Src 3299558294489 (Book.Kind.Term)) λxx (Src 3299569828941 (All "z" (Src 3299577168875 (Book.Kind.Term)) λxz (Src 3299588703309 (All "s" (Src 3299596043278 (All "x" (Src 3299603383300 (Book.Kind.Term)) λxx (Src 3299613869070 (Book.Kind.Term)))) λxs (Src 3299625403469 (All "p" (Src 3299632743473 (All "x" (Src 3299640083495 (Book.Kind.Term)) λxx (Src 3299650569265 (Book.Kind.Term)))) λxp (Src 3299662103629 (App (Src 3299663152181 xP) (Src 3299665249356 (App (App (App (App (App (Src 3299666297919 (Book.Kind.mat)) (Src 3299675735107 xnam)) (Src 3299679929413 xx)) (Src 3299682026567 xz)) (Src 3299684123721 xs)) (Src 3299686220875 xp))))))))))))))) λxmat (Src 3299693561117 (All "txt" (Src 3299702998144 (All "lit" (Src 3299712435308 (Book.Kind.Text)) λxlit (Src 3299723969664 (App (Src 3299725018224 xP) (Src 3299727115391 (App (Src 3299728163962 (Book.Kind.txt)) (Src 3299737601150 xlit))))))) λxtxt (Src 3299747038493 (All "hol" (Src 3299756475599 (All "nam" (Src 3299765912732 (Book.String)) λxnam (Src 3299774301391 (All "ctx" (Src 3299783738551 (App (Src 3299784787116 (Book.List)) (Src 3299790030006 (Book.Kind.Term)))) λxctx (Src 3299802612943 (App (Src 3299803661499 xP) (Src 3299805758670 (App (App (Src 3299806807237 (Book.Kind.hol)) (Src 3299816244425 xnam)) (Src 3299820438733 xctx))))))))) λxhol (Src 3299829875997 (All "var" (Src 3299839313169 (All "nam" (Src 3299848750315 (Book.String)) λxnam (Src 3299857138961 (All "idx" (Src 3299866576121 (Book.Nat)) λxidx (Src 3299871819025 (App (Src 3299872867581 xP) (Src 3299874964752 (App (App (Src 3299876013319 (Book.Kind.var)) (Src 3299885450507 xnam)) (Src 3299889644815 xidx))))))))) λxvar (Src 3299899082013 (App (Src 3299900130583 xP) (Src 3299902227740 xself))))))))))))))))))))))))))))))))))))))) (Src 3298547466253 (Set)))) -Book.Kind.Text = (Ref "Kind.Text" [] (Ann (Src 23089760960534 (Book.String)) (Src 23089756766221 (Set)))) -Book.Kind.all = (Ref "Kind.all" [] (Ann (Src 2199132307700 (Lam "nam" λxnam (Src 2199138599156 (Lam "inp" λxinp (Src 2199144890612 (Lam "bod" λxbod (Src 2199153279220 (Ins (Src 2199154327796 (Lam "P" λxP (Src 2199158522100 (Lam "all" λxall (Src 2199164813556 (Lam "lam" λxlam (Src 2199171105012 (Lam "app" λxapp (Src 2199177396468 (Lam "ann" λxann (Src 2199183687924 (Lam "slf" λxslf (Src 2199189979380 (Lam "ins" λxins (Src 2199196270836 (Lam "ref" λxref (Src 2199202562292 (Lam "def" λxdef (Src 2199208853748 (Lam "set" λxset (Src 2199215145204 (Lam "u60" λxu60 (Src 2199221436660 (Lam "num" λxnum (Src 2199227728116 (Lam "op2" λxop2 (Src 2199234019572 (Lam "mat" λxmat (Src 2199240311028 (Lam "txt" λxtxt (Src 2199246602484 (Lam "hol" λxhol (Src 2199252893940 (Lam "var" λxvar (Src 2199261282548 (App (App (App (Src 2199262331111 xall) (Src 2199266525419 xnam)) (Src 2199270719727 xinp)) (Src 2199274914035 xbod))))))))))))))))))))))))))))))))))))))))))))) (Src 2199034789989 (All "nam" (Src 2199044227098 (Book.String)) λxnam (Src 2199054712933 (All "inp" (Src 2199064150064 (Book.Kind.Term)) λxinp (Src 2199077781605 (All "bod" (Src 2199087218776 (All "x" (Src 2199094558797 (Book.Kind.Term)) λxx (Src 2199106093144 (Book.Kind.Term)))) λxbod (Src 2199119724645 (Book.Kind.Term)))))))))) -Book.Kind.ann = (Ref "Kind.ann" [] (Ann (Src 29686884204741 (Lam "val" λxval (Src 29686890496197 (Lam "typ" λxtyp (Src 29686898884805 (Ins (Src 29686899933381 (Lam "P" λxP (Src 29686904127685 (Lam "all" λxall (Src 29686910419141 (Lam "lam" λxlam (Src 29686916710597 (Lam "app" λxapp (Src 29686923002053 (Lam "ann" λxann (Src 29686929293509 (Lam "slf" λxslf (Src 29686935584965 (Lam "ins" λxins (Src 29686941876421 (Lam "ref" λxref (Src 29686948167877 (Lam "def" λxdef (Src 29686954459333 (Lam "set" λxset (Src 29686960750789 (Lam "u60" λxu60 (Src 29686967042245 (Lam "num" λxnum (Src 29686973333701 (Lam "op2" λxop2 (Src 29686979625157 (Lam "mat" λxmat (Src 29686985916613 (Lam "txt" λxtxt (Src 29686992208069 (Lam "hol" λxhol (Src 29686998499525 (Lam "var" λxvar (Src 29687006888133 (App (App (Src 29687007936700 xann) (Src 29687012131008 xval)) (Src 29687016325316 xtyp))))))))))))))))))))))))))))))))))))))))))) (Src 29686825484352 (All "val" (Src 29686834921501 (Book.Kind.Term)) λxval (Src 29686848553024 (All "typ" (Src 29686857990195 (Book.Kind.Term)) λxtyp (Src 29686871621696 (Book.Kind.Term)))))))) -Book.Kind.app = (Ref "Kind.app" [] (Ann (Src 30786395832517 (Lam "fun" λxfun (Src 30786402123973 (Lam "arg" λxarg (Src 30786410512581 (Ins (Src 30786411561157 (Lam "P" λxP (Src 30786415755461 (Lam "all" λxall (Src 30786422046917 (Lam "lam" λxlam (Src 30786428338373 (Lam "app" λxapp (Src 30786434629829 (Lam "ann" λxann (Src 30786440921285 (Lam "slf" λxslf (Src 30786447212741 (Lam "ins" λxins (Src 30786453504197 (Lam "ref" λxref (Src 30786459795653 (Lam "def" λxdef (Src 30786466087109 (Lam "set" λxset (Src 30786472378565 (Lam "u60" λxu60 (Src 30786478670021 (Lam "num" λxnum (Src 30786484961477 (Lam "op2" λxop2 (Src 30786491252933 (Lam "mat" λxmat (Src 30786497544389 (Lam "txt" λxtxt (Src 30786503835845 (Lam "hol" λxhol (Src 30786510127301 (Lam "var" λxvar (Src 30786518515909 (App (App (Src 30786519564476 xapp) (Src 30786523758784 xfun)) (Src 30786527953092 xarg))))))))))))))))))))))))))))))))))))))))))) (Src 30786337112128 (All "fun" (Src 30786346549277 (Book.Kind.Term)) λxfun (Src 30786360180800 (All "arg" (Src 30786369617971 (Book.Kind.Term)) λxarg (Src 30786383249472 (Book.Kind.Term)))))))) -Book.Kind.check = (Ref "Kind.check" [] (Ann (Src 49478122867187 (Lam "term" λxterm (Src 49478130207219 (Lam "type" λxtype (Src 49478137547251 (Lam "dep" λxdep (Src 49478145935859 (Let "bind" (Src 49478157467808 (App (App (Src 49478158516363 (Book.Maybe.bind)) (Src 49478170050709 (Book.Kind.Term))) (Src 49478180536479 (Book.Kind.Term)))) λxbind (Src 49478194170355 (Let "pure" (Src 49478205702340 (App (Src 49478206750905 (Book.Maybe.some)) (Src 49478218285251 (Book.Kind.Term)))) λxpure (Src 49478232967667 (Let "none" (Src 49478244499689 (App (Src 49478245548254 (Book.Maybe.none)) (Src 49478257082600 (Book.Kind.Term)))) λxnone (Src 49478270716403 (Let "P" (Src 49478279102759 (Lam "x" λxx (Src 49478282248487 (All "type" (Src 49478291685641 (Book.Kind.Term)) λxtype (Src 49478302171431 (All "dep" (Src 49478310560021 (Book.Nat)) λxdep (Src 49478314754343 (App (Src 49478315802908 (Book.Maybe)) (Src 49478322094374 (Book.Kind.Term)))))))))) λxP (Src 49478335728115 (Let "all" (Src 49478346211746 (Lam "term.nam" λxterm.nam (Src 49478357746082 (Lam "term.inp" λxterm.inp (Src 49478369280418 (Lam "term.bod" λxterm.bod (Src 49478380814754 (Lam "type" λxtype (Src 49478388154786 (Lam "dep" λxdep (Src 49478398640546 (App (App (App (Src 49478399689074 (Book.Kind.verify)) (Src 49478412272024 (App (App (App (Src 49478413320572 (Book.Kind.all)) (Src 49478422757765 xterm.nam)) (Src 49478432194958 xterm.inp)) (Src 49478441632151 xterm.bod)))) (Src 49478452117917 xtype)) (Src 49478457360801 xdep))))))))))))) λxall (Src 49478464702963 (Let "lam" (Src 49478475187103 (Lam "term.nam" λxterm.nam (Src 49478486721439 (Lam "term.bod" λxterm.bod (Src 49478498255775 (Lam "type" λxtype (Src 49478505595807 (Lam "dep" λxdep (Src 49478516081567 (App (App (Src 49478517130123 (App (App (App (App (Src 49478518178275 (Book.Kind.if.all)) (Src 49478530761216 (App (App (Src 49478531809776 (Book.Kind.reduce)) (Src 49478544392698 (Book.Bool.true))) (Src 49478554878463 xtype)))) (Src 49478567461453 (All "dep" (Src 49478576898579 (Book.Nat)) λxdep (Src 49478581092941 (All "term.bod" (Src 49478595772987 (All "x" (Src 49478602064433 (Book.Kind.Term)) λxx (Src 49478612550203 (Book.Kind.Term)))) λxterm.bod (Src 49478623035981 (App (Src 49478624084546 (Book.Maybe)) (Src 49478630376012 (Book.Kind.Term))))))))) (Src 49478648202038 (Lam "type.nam" λxtype.nam (Src 49478659736374 (Lam "type.inp" λxtype.inp (Src 49478671270710 (Lam "type.bod" λxtype.bod (Src 49478682805046 (Lam "dep" λxdep (Src 49478689096502 (Lam "term.bod" λxterm.bod (Src 49478709019446 (Let "ann" (Src 49478720553668 (App (App (Src 49478721602210 (Book.Kind.ann)) (Src 49478731039418 (App (App (Src 49478732087980 (Book.Kind.var)) (Src 49478741525173 xterm.nam)) (Src 49478750962361 xdep)))) (Src 49478756205251 xtype.inp))) λxann (Src 49478775079734 (Let "term" (Src 49478786613990 (App (Src 49478787662561 xterm.bod) (Src 49478797099749 xann))) λxterm (Src 49478810731318 (Let "type" (Src 49478822265608 (App (Src 49478823314179 xtype.bod) (Src 49478832751367 xann))) λxtype (Src 49478846382902 (App (App (App (Src 49478847431452 (Book.Kind.check)) (Src 49478858965793 xterm)) (Src 49478864208678 xtype)) (Src 49478869451573 (App (Src 49478870500144 (Book.Nat.succ)) (Src 49478879937332 xdep)))))))))))))))))))))) (Src 49478892520330 (Lam "type" λxtype (Src 49478899860362 (Lam "dep" λxdep (Src 49478906151818 (Lam "term.bod" λxterm.bod (Src 49478926074762 (App (App (Src 49478927123304 (Book.Kind.infer)) (Src 49478938657669 (App (App (Src 49478939706226 (Book.Kind.lam)) (Src 49478949143419 xterm.nam)) (Src 49478958580612 xterm.bod)))) (Src 49478969066377 xdep))))))))))) (Src 49478981649301 xdep)) (Src 49478985843614 xterm.bod))))))))))) λxlam (Src 49478998428147 (Let "app" (Src 49479008912390 (Lam "term.fun" λxterm.fun (Src 49479020446726 (Lam "term.arg" λxterm.arg (Src 49479031981062 (Lam "type" λxtype (Src 49479039321094 (Lam "dep" λxdep (Src 49479049806854 (App (App (App (Src 49479050855391 (Book.Kind.verify)) (Src 49479063438332 (App (App (Src 49479064486889 (Book.Kind.app)) (Src 49479073924082 xterm.fun)) (Src 49479083361275 xterm.arg)))) (Src 49479093847041 xtype)) (Src 49479099089925 xdep))))))))))) λxapp (Src 49479106431475 (Let "ann" (Src 49479116915801 (Lam "val" λxval (Src 49479123207257 (Lam "typ" λxtyp (Src 49479129498713 (Lam "type" λxtype (Src 49479136838745 (Lam "dep" λxdep (Src 49479147324505 (App (App (App (Src 49479148373052 (Book.Kind.verify)) (Src 49479160955983 (App (App (Src 49479162004550 (Book.Kind.ann)) (Src 49479171441738 xval)) (Src 49479175636046 xtyp)))) (Src 49479180878932 xtype)) (Src 49479186121816 xdep))))))))))) λxann (Src 49479193463283 (Let "slf" (Src 49479203947712 (Lam "term.nam" λxterm.nam (Src 49479215482048 (Lam "term.bod" λxterm.bod (Src 49479227016384 (Lam "type" λxtype (Src 49479234356416 (Lam "dep" λxdep (Src 49479244842176 (App (App (App (Src 49479245890713 (Book.Kind.verify)) (Src 49479258473654 (App (App (Src 49479259522211 (Book.Kind.slf)) (Src 49479268959404 xterm.nam)) (Src 49479278396597 xterm.bod)))) (Src 49479288882363 xtype)) (Src 49479294125247 xdep))))))))))) λxslf (Src 49479301466611 (Let "ins" (Src 49479311951361 (Lam "term.val" λxterm.val (Src 49479323485697 (Lam "type" λxtype (Src 49479330825729 (Lam "dep" λxdep (Src 49479341311489 (App (Src 49479342360049 (App (App (App (App (Src 49479343408374 (Book.Kind.if.slf)) (Src 49479355991315 (App (App (Src 49479357039875 (Book.Kind.reduce)) (Src 49479369622797 (Book.Bool.true))) (Src 49479380108562 xtype)))) (Src 49479392691523 (All "term.val" (Src 49479407371569 (Book.Kind.Term)) λxterm.val (Src 49479417857347 (App (Src 49479418905912 (Book.Maybe)) (Src 49479425197378 (Book.Kind.Term))))))) (Src 49479443023275 (Lam "type.nam" λxtype.nam (Src 49479454557611 (Lam "type.bod" λxtype.bod (Src 49479466091947 (Lam "term.val" λxterm.val (Src 49479486014891 (App (App (App (Src 49479487063422 (Book.Kind.check)) (Src 49479498597767 xterm.val)) (Src 49479508034982 (App (Src 49479509083537 xtype.bod) (Src 49479518520741 (App (Src 49479519569307 (Book.Kind.ins)) (Src 49479529006500 xterm.val)))))) (Src 49479540540842 xdep)))))))))) (Src 49479552075248 (Lam "type" λxtype (Src 49479559415280 (Lam "term.val" λxterm.val (Src 49479579338224 (App (App (Src 49479580386775 (Book.Kind.infer)) (Src 49479591921131 (App (Src 49479592969697 (Book.Kind.ins)) (Src 49479602406890 xterm.val)))) (Src 49479612892655 xdep))))))))) (Src 49479625475584 xterm.val))))))))) λxins (Src 49479638059507 (Let "ref" (Src 49479648544339 (Lam "term.nam" λxterm.nam (Src 49479660078675 (Lam "term.val" λxterm.val (Src 49479671613011 (Lam "type" λxtype (Src 49479678953043 (Lam "dep" λxdep (Src 49479689438803 (App (App (App (Src 49479690487360 (Book.Kind.check)) (Src 49479702021705 xterm.val)) (Src 49479711458894 xtype)) (Src 49479716701778 xdep))))))))))) λxref (Src 49479724042739 (Let "def" (Src 49479734527686 (Lam "term.nam" λxterm.nam (Src 49479746062022 (Lam "term.val" λxterm.val (Src 49479757596358 (Lam "term.bod" λxterm.bod (Src 49479769130694 (Lam "type" λxtype (Src 49479776470726 (Lam "dep" λxdep (Src 49479786956486 (App (App (App (Src 49479788005021 (Book.Kind.check)) (Src 49479799539377 (App (Src 49479800587943 xterm.bod) (Src 49479810025136 xterm.val)))) (Src 49479820510902 xtype)) (Src 49479825753797 (App (Src 49479826802368 (Book.Nat.succ)) (Src 49479836239556 xdep))))))))))))))) λxdef (Src 49479844628979 (Let "set" (Src 49479855113987 (Lam "type" λxtype (Src 49479862454019 (Lam "dep" λxdep (Src 49479872939779 (App (App (App (Src 49479873988336 (Book.Kind.verify)) (Src 49479886571257 (Book.Kind.set))) (Src 49479896008446 xtype)) (Src 49479901251330 xdep))))))) λxset (Src 49479908592115 (Let "u60" (Src 49479919077184 (Lam "type" λxtype (Src 49479926417216 (Lam "dep" λxdep (Src 49479936902976 (App (App (App (Src 49479937951533 (Book.Kind.verify)) (Src 49479950534454 (Book.Kind.u60))) (Src 49479959971643 xtype)) (Src 49479965214527 xdep))))))) λxu60 (Src 49479972555251 (Let "num" (Src 49479983040403 (Lam "term.num" λxterm.num (Src 49479994574739 (Lam "type" λxtype (Src 49480001914771 (Lam "dep" λxdep (Src 49480012400531 (App (App (App (Src 49480013449077 (Book.Kind.verify)) (Src 49480026032009 (App (Src 49480027080575 (Book.Kind.num)) (Src 49480036517768 xterm.num)))) (Src 49480047003534 xtype)) (Src 49480052246418 xdep))))))))) λxnum (Src 49480059587059 (Let "op2" (Src 49480070072334 (Lam "term.opr" λxterm.opr (Src 49480081606670 (Lam "term.fst" λxterm.fst (Src 49480093141006 (Lam "term.snd" λxterm.snd (Src 49480104675342 (Lam "type" λxtype (Src 49480112015374 (Lam "dep" λxdep (Src 49480122501134 (App (App (App (Src 49480123549662 (Book.Kind.verify)) (Src 49480136132612 (App (App (App (Src 49480137181160 (Book.Kind.op2)) (Src 49480146618353 xterm.opr)) (Src 49480156055546 xterm.fst)) (Src 49480165492739 xterm.snd)))) (Src 49480175978505 xtype)) (Src 49480181221389 xdep))))))))))))) λxop2 (Src 49480188561907 (Let "mat" (Src 49480199047329 (Lam "term.nam" λxterm.nam (Src 49480210581665 (Lam "term.x" λxterm.x (Src 49480220018849 (Lam "term.z" λxterm.z (Src 49480229456033 (Lam "term.s" λxterm.s (Src 49480238893217 (Lam "term.p" λxterm.p (Src 49480248330401 (Lam "type" λxtype (Src 49480255670433 (Lam "dep" λxdep (Src 49480266156193 (App (App (App (Src 49480267204711 (Book.Kind.verify)) (Src 49480279787671 (App (App (App (App (App (Src 49480280836209 (Book.Kind.mat)) (Src 49480290273402 xterm.nam)) (Src 49480299710593 xterm.x)) (Src 49480307050632 xterm.z)) (Src 49480314390671 xterm.s)) (Src 49480321730710 xterm.p)))) (Src 49480330119324 xtype)) (Src 49480335362208 xdep))))))))))))))))) λxmat (Src 49480342702579 (Let "txt" (Src 49480353188084 (Lam "term.txt" λxterm.txt (Src 49480364722420 (Lam "type" λxtype (Src 49480372062452 (Lam "dep" λxdep (Src 49480382548212 (App (App (App (Src 49480383596758 (Book.Kind.verify)) (Src 49480396179690 (App (Src 49480397228256 (Book.Kind.txt)) (Src 49480406665449 xterm.txt)))) (Src 49480417151215 xtype)) (Src 49480422394099 xdep))))))))) λxtxt (Src 49480429734387 (Let "hol" (Src 49480440219959 (Lam "term.nam" λxterm.nam (Src 49480451754295 (Lam "term.ctx" λxterm.ctx (Src 49480463288631 (Lam "type" λxtype (Src 49480470628663 (Lam "dep" λxdep (Src 49480481114423 (App (Src 49480482162989 xpure) (Src 49480487405878 (Book.Kind.set)))))))))))) λxhol (Src 49480499988979 (Let "var" (Src 49480510474654 (Lam "term.nam" λxterm.nam (Src 49480522008990 (Lam "term.idx" λxterm.idx (Src 49480533543326 (Lam "type" λxtype (Src 49480540883358 (Lam "dep" λxdep (Src 49480551369118 (App (App (App (Src 49480552417655 (Book.Kind.verify)) (Src 49480565000596 (App (App (Src 49480566049153 (Book.Kind.var)) (Src 49480575486346 xterm.nam)) (Src 49480584923539 xterm.idx)))) (Src 49480595409305 xtype)) (Src 49480600652189 xdep))))))))))) λxvar (Src 49480607992307 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 49480609040807 (Ins (Src 49480610089383 xterm))) (Src 49480615332265 xP)) (Src 49480617429421 xall)) (Src 49480621623729 xlam)) (Src 49480625818037 xapp)) (Src 49480630012345 xann)) (Src 49480634206653 xslf)) (Src 49480638400961 xins)) (Src 49480642595269 xref)) (Src 49480646789577 xdef)) (Src 49480650983885 xset)) (Src 49480655178193 xu60)) (Src 49480659372501 xnum)) (Src 49480663566809 xop2)) (Src 49480667761117 xmat)) (Src 49480671955425 xtxt)) (Src 49480676149733 xhol)) (Src 49480680344041 xvar)) (Src 49480684538350 xtype)) (Src 49480689781234 xdep))))))))))))))))))))))))))))))))))))))))))))))))) (Src 49478036881500 (All "term" (Src 49478047367200 (Book.Kind.Term)) λxterm (Src 49478060998748 (All "type" (Src 49478071484471 (Book.Kind.Term)) λxtype (Src 49478085115996 (All "dep" (Src 49478094553159 (Book.Nat)) λxdep (Src 49478101893212 (App (Src 49478102941777 (Book.Maybe)) (Src 49478109233243 (Book.Kind.Term)))))))))))) -Book.Kind.comparer = (Ref "Kind.comparer" [] (Ann (Src 81364017745839 (Lam "rec" λxrec (Src 81364024037295 (Lam "a" λxa (Src 81364028231599 (Lam "b" λxb (Src 81364032425903 (Lam "dep" λxdep (Src 81364040814511 (Let "VAR" (Src 81364051296446 (Book.Kind.var)) λxVAR (Src 81364062834607 (Let "SUC" (Src 81364073316563 (Book.Nat.succ)) λxSUC (Src 81364114214831 (Let "a" (Src 81364122599687 (App (Src 81364123648260 (Book.Kind.skip)) (Src 81364134134022 xa))) λxa (Src 81364139380655 (Let "b" (Src 81364147765535 (App (Src 81364148814108 (Book.Kind.skip)) (Src 81364159299870 xb))) λxb (Src 81364190760879 (Let "R" (Src 81364199145829 (All "b" (Src 81364205437266 (Book.Kind.Term)) λxb (Src 81364216971621 (All "dep" (Src 81364225360223 (Book.Nat)) λxdep (Src 81364230603109 (Book.Bool)))))) λxR (Src 81364237946799 (Let "Y" (Src 81364246331795 (Lam "a.nam" λxa.nam (Src 81364254720403 (Lam "a.ctx" λxa.ctx (Src 81364263109011 (Lam "b" λxb (Src 81364267303315 (Lam "dep" λxdep (Src 81364273594771 (Book.Bool.true)))))))))) λxY (Src 81364286181295 (Let "N" (Src 81364294569873 (Lam "a" λxa (Src 81364298764177 (Lam "b" λxb (Src 81364302958481 (Lam "dep" λxdep (Src 81364341755793 (Let "R" (Src 81364350140917 (All "dep" (Src 81364358529502 (Book.Nat)) λxdep (Src 81364363772405 (All "a" (Src 81364370063855 (Book.Kind.Term)) λxa (Src 81364381598197 (Book.Bool)))))) λxR (Src 81364391038865 (Let "Y" (Src 81364399424037 (Lam "b.nam" λxb.nam (Src 81364407812645 (Lam "b.ctx" λxb.ctx (Src 81364416201253 (Lam "dep" λxdep (Src 81364422492709 (Lam "a" λxa (Src 81364426687013 (Book.Bool.true)))))))))) λxY (Src 81364441370513 (Let "N" (Src 81364449759089 (Lam "b" λxb (Src 81364453953393 (Lam "dep" λxdep (Src 81364460244849 (Lam "a" λxa (Src 81364506382193 (Let "P" (Src 81364516864666 (Lam "x" λxx (Src 81364521058970 (All "b" (Src 81364528398982 (Book.Kind.Term)) λxb (Src 81364539933338 (All "dep" (Src 81364549370516 (Book.Nat)) λxdep (Src 81364554613402 (Book.Bool)))))))) λxP (Src 81364566151025 (Let "all" (Src 81364576633798 (Lam "a.nam" λxa.nam (Src 81364585022406 (Lam "a.inp" λxa.inp (Src 81364593411014 (Lam "a.bod" λxa.bod (Src 81364601799622 (Lam "b" λxb (Src 81364605993926 (Lam "dep" λxdep (Src 81364620673990 (Let "P" (Src 81364629062382 (All "dep" (Src 81364637450984 (Book.Nat)) λxdep (Src 81364642693870 (Book.Bool)))) λxP (Src 81364656325574 (Let "Y" (Src 81364664714109 (Lam "b.nam" λxb.nam (Src 81364673102717 (Lam "b.inp" λxb.inp (Src 81364681491325 (Lam "b.bod" λxb.bod (Src 81364689879933 (Lam "dep" λxdep (Src 81364696171389 (App (App (Src 81364697219878 (Book.Bool.and)) (Src 81364706657084 (App (App (App (Src 81364707705643 xrec) (Src 81364711899953 xa.inp)) (Src 81364718191415 xb.inp)) (Src 81364724482875 xdep)))) (Src 81364729725820 (App (App (App (Src 81364730774337 xrec) (Src 81364734968665 (App (Src 81364736017224 xa.bod) (Src 81364742308696 (App (App (Src 81364743357261 xVAR) (Src 81364747551571 xa.nam)) (Src 81364753843031 xdep)))))) (Src 81364760134513 (App (Src 81364761183072 xb.bod) (Src 81364767474544 (App (App (Src 81364768523109 xVAR) (Src 81364772717419 xb.nam)) (Src 81364779008879 xdep)))))) (Src 81364785300347 (App (Src 81364786348918 xSUC) (Src 81364790543226 xdep))))))))))))))) λxY (Src 81364806271942 (Let "N" (Src 81364814660516 (Lam "val" λxval (Src 81364820951972 (Lam "dep" λxdep (Src 81364827243428 (Book.Bool.false)))))) λxN (Src 81364847166406 (App (App (App (App (App (Src 81364848214969 (Book.Kind.if.all)) (Src 81364860797883 xb)) (Src 81364862895037 xP)) (Src 81364864992191 xY)) (Src 81364867089345 xN)) (Src 81364869186501 xdep))))))))))))))))))) λxall (Src 81364880723825 (Let "lam" (Src 81364891206849 (Lam "a.nam" λxa.nam (Src 81364899595457 (Lam "a.bod" λxa.bod (Src 81364907984065 (Lam "b" λxb (Src 81364912178369 (Lam "dep" λxdep (Src 81364926858433 (Let "P" (Src 81364935246866 (All "dep" (Src 81364943635468 (Book.Nat)) λxdep (Src 81364948878354 (Book.Bool)))) λxP (Src 81364962510017 (Let "Y" (Src 81364970898552 (Lam "b.nam" λxb.nam (Src 81364979287160 (Lam "b.bod" λxb.bod (Src 81364987675768 (Lam "dep" λxdep (Src 81364993967224 (App (App (App (Src 81364995015741 xrec) (Src 81364999210069 (App (Src 81365000258628 xa.bod) (Src 81365006550100 (App (App (Src 81365007598665 xVAR) (Src 81365011792975 xa.nam)) (Src 81365018084435 xdep)))))) (Src 81365024375917 (App (Src 81365025424476 xb.bod) (Src 81365031715948 (App (App (Src 81365032764513 xVAR) (Src 81365036958823 xb.nam)) (Src 81365043250283 xdep)))))) (Src 81365049541751 (App (Src 81365050590322 xSUC) (Src 81365054784630 xdep))))))))))) λxY (Src 81365069464769 (Let "N" (Src 81365077853343 (Lam "val" λxval (Src 81365084144799 (Lam "dep" λxdep (Src 81365090436255 (Book.Bool.false)))))) λxN (Src 81365110359233 (App (App (App (App (App (Src 81365111407796 (Book.Kind.if.lam)) (Src 81365123990710 xb)) (Src 81365126087864 xP)) (Src 81365128185018 xY)) (Src 81365130282172 xN)) (Src 81365132379328 xdep))))))))))))))))) λxlam (Src 81365143916401 (Let "app" (Src 81365154399667 (Lam "a.fun" λxa.fun (Src 81365162788275 (Lam "a.arg" λxa.arg (Src 81365171176883 (Lam "b" λxb (Src 81365175371187 (Lam "dep" λxdep (Src 81365190051251 (Let "P" (Src 81365198439693 (All "dep" (Src 81365206828295 (Book.Nat)) λxdep (Src 81365212071181 (Book.Bool)))) λxP (Src 81365225702835 (Let "Y" (Src 81365234091370 (Lam "b.fun" λxb.fun (Src 81365242479978 (Lam "b.arg" λxb.arg (Src 81365250868586 (Lam "dep" λxdep (Src 81365257160042 (App (App (Src 81365258208573 (Book.Bool.and)) (Src 81365267645779 (App (App (App (Src 81365268694338 xrec) (Src 81365272888648 xa.fun)) (Src 81365279180110 xb.fun)) (Src 81365285471570 xdep)))) (Src 81365290714473 (App (App (App (Src 81365291763032 xrec) (Src 81365295957342 xa.arg)) (Src 81365302248804 xb.arg)) (Src 81365308540264 xdep))))))))))) λxY (Src 81365323220403 (Let "N" (Src 81365331608977 (Lam "val" λxval (Src 81365337900433 (Lam "dep" λxdep (Src 81365344191889 (Book.Bool.false)))))) λxN (Src 81365364114867 (App (App (App (App (App (Src 81365365163430 (Book.Kind.if.app)) (Src 81365377746344 xb)) (Src 81365379843498 xP)) (Src 81365381940652 xY)) (Src 81365384037806 xN)) (Src 81365386134962 xdep))))))))))))))))) λxapp (Src 81365397671793 (Let "ann" (Src 81365408155120 (Lam "a.val" λxa.val (Src 81365416543728 (Lam "a.typ" λxa.typ (Src 81365424932336 (Lam "b" λxb (Src 81365429126640 (Lam "dep" λxdep (Src 81365443806704 (Book.Bool.false)))))))))) λxann (Src 81365477363569 (Let "slf" (Src 81365487847162 (Lam "a.nam" λxa.nam (Src 81365496235770 (Lam "a.bod" λxa.bod (Src 81365504624378 (Lam "b" λxb (Src 81365508818682 (Lam "dep" λxdep (Src 81365523498746 (Let "P" (Src 81365531887179 (All "dep" (Src 81365540275781 (Book.Nat)) λxdep (Src 81365545518667 (Book.Bool)))) λxP (Src 81365559150330 (Let "Y" (Src 81365567538865 (Lam "b.nam" λxb.nam (Src 81365575927473 (Lam "b.bod" λxb.bod (Src 81365584316081 (Lam "dep" λxdep (Src 81365590607537 (App (App (App (Src 81365591656054 xrec) (Src 81365595850382 (App (Src 81365596898941 xa.bod) (Src 81365603190413 (App (App (Src 81365604238978 xVAR) (Src 81365608433288 xa.nam)) (Src 81365614724748 xdep)))))) (Src 81365621016230 (App (Src 81365622064789 xb.bod) (Src 81365628356261 (App (App (Src 81365629404826 xVAR) (Src 81365633599136 xb.nam)) (Src 81365639890596 xdep)))))) (Src 81365646182064 (App (Src 81365647230635 xSUC) (Src 81365651424943 xdep))))))))))) λxY (Src 81365666105082 (Let "N" (Src 81365674493656 (Lam "val" λxval (Src 81365680785112 (Lam "dep" λxdep (Src 81365687076568 (Book.Bool.false)))))) λxN (Src 81365706999546 (App (App (App (App (App (Src 81365708048109 (Book.Kind.if.slf)) (Src 81365720631023 xb)) (Src 81365722728177 xP)) (Src 81365724825331 xY)) (Src 81365726922485 xN)) (Src 81365729019641 xdep))))))))))))))))) λxslf (Src 81365740556145 (Let "ins" (Src 81365751039791 (Lam "a.val" λxa.val (Src 81365759428399 (Lam "b" λxb (Src 81365763622703 (Lam "dep" λxdep (Src 81365778302767 (Book.Bool.false)))))))) λxins (Src 81365811859313 (Let "ref" (Src 81365822343188 (Lam "a.nam" λxa.nam (Src 81365830731796 (Lam "a.val" λxa.val (Src 81365839120404 (Lam "b" λxb (Src 81365843314708 (Lam "dep" λxdep (Src 81365857994772 (Let "P" (Src 81365866383242 (All "dep" (Src 81365874771844 (Book.Nat)) λxdep (Src 81365880014730 (Book.Bool)))) λxP (Src 81365893646356 (Let "Y" (Src 81365902034891 (Lam "b.nam" λxb.nam (Src 81365910423499 (Lam "b.val" λxb.val (Src 81365918812107 (Lam "dep" λxdep (Src 81365925103563 (App (App (Src 81365926152126 (Book.String.equal)) (Src 81365939783620 xa.nam)) (Src 81365946075082 xb.nam))))))))) λxY (Src 81365961803796 (Let "N" (Src 81365970192370 (Lam "val" λxval (Src 81365976483826 (Lam "dep" λxdep (Src 81365982775282 (Book.Bool.false)))))) λxN (Src 81366002698260 (App (App (App (App (App (Src 81366003746823 (Book.Kind.if.ref)) (Src 81366016329737 xb)) (Src 81366018426891 xP)) (Src 81366020524045 xY)) (Src 81366022621199 xN)) (Src 81366024718355 xdep))))))))))))))))) λxref (Src 81366036254577 (Let "def" (Src 81366046738521 (Lam "a.nam" λxa.nam (Src 81366055127129 (Lam "a.val" λxa.val (Src 81366063515737 (Lam "a.bod" λxa.bod (Src 81366071904345 (Lam "b" λxb (Src 81366076098649 (Lam "dep" λxdep (Src 81366090778713 (Book.Bool.false)))))))))))) λxdef (Src 81366124334961 (Let "set" (Src 81366134819085 (Lam "b" λxb (Src 81366139013389 (Lam "dep" λxdep (Src 81366153693453 (Let "P" (Src 81366162081956 (All "dep" (Src 81366170470558 (Book.Nat)) λxdep (Src 81366175713444 (Book.Bool)))) λxP (Src 81366189345037 (Let "Y" (Src 81366197733572 (Lam "dep" λxdep (Src 81366204025028 (Book.Bool.true)))) λxY (Src 81366222899469 (Let "F" (Src 81366231288043 (Lam "val" λxval (Src 81366237579499 (Lam "dep" λxdep (Src 81366243870955 (Book.Bool.false)))))) λxF (Src 81366263793933 (App (App (App (App (App (Src 81366264842496 (Book.Kind.if.set)) (Src 81366277425410 xb)) (Src 81366279522564 xP)) (Src 81366281619718 xY)) (Src 81366283716872 xF)) (Src 81366285814028 xdep))))))))))))) λxset (Src 81366297350001 (Let "u60" (Src 81366307834290 (Lam "b" λxb (Src 81366312028594 (Lam "dep" λxdep (Src 81366326708658 (Let "P" (Src 81366335097161 (All "dep" (Src 81366343485763 (Book.Nat)) λxdep (Src 81366348728649 (Book.Bool)))) λxP (Src 81366362360242 (Let "Y" (Src 81366370748777 (Lam "dep" λxdep (Src 81366377040233 (Book.Bool.true)))) λxY (Src 81366395914674 (Let "N" (Src 81366404303248 (Lam "val" λxval (Src 81366410594704 (Lam "dep" λxdep (Src 81366416886160 (Book.Bool.false)))))) λxN (Src 81366436809138 (App (App (App (App (App (Src 81366437857701 (Book.Kind.if.u60)) (Src 81366450440615 xb)) (Src 81366452537769 xP)) (Src 81366454634923 xY)) (Src 81366456732077 xN)) (Src 81366458829233 xdep))))))))))))) λxu60 (Src 81366470365041 (Let "num" (Src 81366480849525 (Lam "a.val" λxa.val (Src 81366489238133 (Lam "b" λxb (Src 81366493432437 (Lam "dep" λxdep (Src 81366508112501 (Let "P" (Src 81366516500982 (All "dep" (Src 81366524889584 (Book.Nat)) λxdep (Src 81366530132470 (Book.Bool)))) λxP (Src 81366543764085 (Let "Y" (Src 81366552152620 (Lam "b.val" λxb.val (Src 81366560541228 (Lam "dep" λxdep (Src 81366566832684 (App (App (Src 81366567881247 (Book.U60.equal)) (Src 81366578367013 xa.val)) (Src 81366584658475 xb.val))))))) λxY (Src 81366600387189 (Let "N" (Src 81366608775763 (Lam "val" λxval (Src 81366615067219 (Lam "dep" λxdep (Src 81366621358675 (Book.Bool.false)))))) λxN (Src 81366641281653 (App (App (App (App (App (Src 81366642330216 (Book.Kind.if.num)) (Src 81366654913130 xb)) (Src 81366657010284 xP)) (Src 81366659107438 xY)) (Src 81366661204592 xN)) (Src 81366663301748 xdep))))))))))))))) λxnum (Src 81366674837361 (Let "op2" (Src 81366685322103 (Lam "a.opr" λxa.opr (Src 81366693710711 (Lam "a.fst" λxa.fst (Src 81366702099319 (Lam "a.snd" λxa.snd (Src 81366710487927 (Lam "b" λxb (Src 81366714682231 (Lam "dep" λxdep (Src 81366729362295 (Let "P" (Src 81366737750729 (All "dep" (Src 81366746139331 (Book.Nat)) λxdep (Src 81366751382217 (Book.Bool)))) λxP (Src 81366765013879 (Let "Y" (Src 81366773402414 (Lam "b.opr" λxb.opr (Src 81366781791022 (Lam "b.fst" λxb.fst (Src 81366790179630 (Lam "b.snd" λxb.snd (Src 81366798568238 (Lam "dep" λxdep (Src 81366804859694 (App (App (Src 81366805908225 (Book.Bool.and)) (Src 81366815345431 (App (App (App (Src 81366816393990 xrec) (Src 81366820588300 xa.fst)) (Src 81366826879762 xb.fst)) (Src 81366833171222 xdep)))) (Src 81366838414125 (App (App (App (Src 81366839462684 xrec) (Src 81366843656994 xa.snd)) (Src 81366849948456 xb.snd)) (Src 81366856239916 xdep))))))))))))) λxY (Src 81366870920055 (Let "N" (Src 81366879308629 (Lam "val" λxval (Src 81366885600085 (Lam "dep" λxdep (Src 81366891891541 (Book.Bool.false)))))) λxN (Src 81366911814519 (App (App (App (App (App (Src 81366912863082 (Book.Kind.if.op2)) (Src 81366925445996 xb)) (Src 81366927543150 xP)) (Src 81366929640304 xY)) (Src 81366931737458 xN)) (Src 81366933834614 xdep))))))))))))))))))) λxop2 (Src 81366945369969 (Let "mat" (Src 81366955855161 (Lam "a.nam" λxa.nam (Src 81366964243769 (Lam "a.x" λxa.x (Src 81366970535225 (Lam "a.z" λxa.z (Src 81366976826681 (Lam "a.s" λxa.s (Src 81366983118137 (Lam "a.p" λxa.p (Src 81366989409593 (Lam "b" λxb (Src 81366993603897 (Lam "dep" λxdep (Src 81367008283961 (Let "P" (Src 81367016672211 (All "dep" (Src 81367025060813 (Book.Nat)) λxdep (Src 81367030303699 (Book.Bool)))) λxP (Src 81367043935545 (Let "Y" (Src 81367052324080 (Lam "b.nam" λxb.nam (Src 81367060712688 (Lam "b.x" λxb.x (Src 81367067004144 (Lam "b.z" λxb.z (Src 81367073295600 (Lam "b.s" λxb.s (Src 81367079587056 (Lam "b.p" λxb.p (Src 81367085878512 (Lam "dep" λxdep (Src 81367092169968 (App (App (Src 81367093218323 (Book.Bool.and)) (Src 81367102655525 (App (App (App (Src 81367103704088 xrec) (Src 81367107898396 xa.x)) (Src 81367112092704 xb.x)) (Src 81367116287012 xdep)))) (Src 81367121530095 (App (App (Src 81367122578479 (Book.Bool.and)) (Src 81367132015681 (App (App (App (Src 81367133064244 xrec) (Src 81367137258552 xa.z)) (Src 81367141452860 xb.z)) (Src 81367145647168 xdep)))) (Src 81367150890222 (App (App (Src 81367151938635 (Book.Bool.and)) (Src 81367161375921 (App (App (App (Src 81367162424400 xrec) (Src 81367166618747 (App (Src 81367167667285 xa.s) (Src 81367171861626 (App (App (Src 81367172910170 xVAR) (Src 81367177104501 (App (App (Src 81367178153065 (Book.String.concat)) (Src 81367192833135 xa.nam)) (Src 81367199124596 (Txt "-1"))))) (Src 81367205416057 xdep)))))) (Src 81367211707558 (App (Src 81367212756096 xb.s) (Src 81367216950437 (App (App (Src 81367217998981 xVAR) (Src 81367222193312 (App (App (Src 81367223241876 (Book.String.concat)) (Src 81367237921946 xb.nam)) (Src 81367244213407 (Txt "-1"))))) (Src 81367250504868 xdep)))))) (Src 81367256796336 (App (Src 81367257844907 xSUC) (Src 81367262039215 xdep)))))) (Src 81367268330733 (App (App (App (Src 81367269379254 xrec) (Src 81367273573580 (App (Src 81367274622139 xa.p) (Src 81367278816459 (App (App (Src 81367279865024 xVAR) (Src 81367284059334 xa.nam)) (Src 81367290350794 xdep)))))) (Src 81367296642274 (App (Src 81367297690833 xb.p) (Src 81367301885153 (App (App (Src 81367302933718 xVAR) (Src 81367307128028 xb.nam)) (Src 81367313419488 xdep)))))) (Src 81367319710956 (App (Src 81367320759527 xSUC) (Src 81367324953835 xdep))))))))))))))))))))))) λxY (Src 81367342779705 (Let "N" (Src 81367351168279 (Lam "val" λxval (Src 81367357459735 (Lam "dep" λxdep (Src 81367363751191 (Book.Bool.false)))))) λxN (Src 81367383674169 (App (App (App (App (App (Src 81367384722732 (Book.Kind.if.mat)) (Src 81367397305646 xb)) (Src 81367399402800 xP)) (Src 81367401499954 xY)) (Src 81367403597108 xN)) (Src 81367405694264 xdep))))))))))))))))))))))) λxmat (Src 81367417229169 (Let "txt" (Src 81367427714559 (Lam "a.txt" λxa.txt (Src 81367436103167 (Lam "b" λxb (Src 81367440297471 (Lam "dep" λxdep (Src 81367454977535 (Let "P" (Src 81367463366013 (All "dep" (Src 81367471754615 (Book.Nat)) λxdep (Src 81367476997501 (Book.Bool)))) λxP (Src 81367490629119 (Let "Y" (Src 81367499017654 (Lam "b.txt" λxb.txt (Src 81367507406262 (Lam "dep" λxdep (Src 81367513697718 (App (App (Src 81367514746281 (Book.String.equal)) (Src 81367528377775 xa.txt)) (Src 81367534669237 xb.txt))))))) λxY (Src 81367550397951 (Let "N" (Src 81367558786525 (Lam "val" λxval (Src 81367565077981 (Lam "dep" λxdep (Src 81367571369437 (Book.Bool.false)))))) λxN (Src 81367591292415 (App (App (App (App (App (Src 81367592340978 (Book.Kind.if.txt)) (Src 81367604923892 xb)) (Src 81367607021046 xP)) (Src 81367609118200 xY)) (Src 81367611215354 xN)) (Src 81367613312510 xdep))))))))))))))) λxtxt (Src 81367624847217 (Let "hol" (Src 81367635332668 (Lam "a.nam" λxa.nam (Src 81367643721276 (Lam "a.ctx" λxa.ctx (Src 81367652109884 (Lam "b" λxb (Src 81367656304188 (Lam "dep" λxdep (Src 81367670984252 (Book.Bool.false)))))))))) λxhol (Src 81367704538993 (Let "var" (Src 81367715024670 (Lam "a.nam" λxa.nam (Src 81367723413278 (Lam "a.idx" λxa.idx (Src 81367731801886 (Lam "b" λxb (Src 81367735996190 (Lam "dep" λxdep (Src 81367750676254 (Let "P" (Src 81367759064727 (All "dep" (Src 81367767453329 (Book.Nat)) λxdep (Src 81367772696215 (Book.Bool)))) λxP (Src 81367786327838 (Let "Y" (Src 81367794716373 (Lam "b.nam" λxb.nam (Src 81367803104981 (Lam "b.idx" λxb.idx (Src 81367811493589 (Lam "dep" λxdep (Src 81367817785045 (App (App (Src 81367818833608 (Book.Nat.equal)) (Src 81367829319374 xa.idx)) (Src 81367835610836 xb.idx))))))))) λxY (Src 81367851339550 (Let "N" (Src 81367859728124 (Lam "val" λxval (Src 81367866019580 (Lam "dep" λxdep (Src 81367872311036 (Book.Bool.false)))))) λxN (Src 81367892234014 (App (App (App (App (App (Src 81367893282577 (Book.Kind.if.var)) (Src 81367905865491 xb)) (Src 81367907962645 xP)) (Src 81367910059799 xY)) (Src 81367912156953 xN)) (Src 81367914254109 xdep))))))))))))))))) λxvar (Src 81367925788529 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 81367926837032 (Ins (Src 81367927885608 xa))) (Src 81367929982762 xP)) (Src 81367932079918 xall)) (Src 81367936274226 xlam)) (Src 81367940468534 xapp)) (Src 81367944662842 xann)) (Src 81367948857150 xslf)) (Src 81367953051458 xins)) (Src 81367957245766 xref)) (Src 81367961440074 xdef)) (Src 81367965634382 xset)) (Src 81367969828690 xu60)) (Src 81367974022998 xnum)) (Src 81367978217306 xop2)) (Src 81367982411614 xmat)) (Src 81367986605922 xtxt)) (Src 81367990800230 xhol)) (Src 81367994994538 xvar)) (Src 81367999188844 xb)) (Src 81368001286000 xdep))))))))))))))))))))))))))))))))))))))))))) λxN (Src 81368010723217 (App (App (App (App (App (App (Src 81368011771778 (Book.Kind.if.hol)) (Src 81368024354692 xb)) (Src 81368026451846 xR)) (Src 81368028549000 xY)) (Src 81368030646154 xN)) (Src 81368032743310 xdep)) (Src 81368036937616 xa))))))))))))))) λxN (Src 81368042180527 (App (App (App (App (App (App (Src 81368043229088 (Book.Kind.if.hol)) (Src 81368055812002 xa)) (Src 81368057909156 xR)) (Src 81368060006310 xY)) (Src 81368062103464 xN)) (Src 81368064200618 xb)) (Src 81368066297774 xdep))))))))))))))))))))))))) (Src 81363877232787 (All "rec" (Src 81363886669903 (All "a" (Src 81363894009897 (Book.Kind.Term)) λxa (Src 81363905544271 (All "b" (Src 81363912884283 (Book.Kind.Term)) λxb (Src 81363924418639 (All "dep" (Src 81363933855817 (Book.Nat)) λxdep (Src 81363939098703 (Book.Bool)))))))) λxrec (Src 81363947487379 (All "a" (Src 81363956924517 (Book.Kind.Term)) λxa (Src 81363970556051 (All "b" (Src 81363979993211 (Book.Kind.Term)) λxb (Src 81363993624723 (All "dep" (Src 81364003061899 (Book.Nat)) λxdep (Src 81364010401939 (Book.Bool)))))))))))) -Book.Kind.def = (Ref "Kind.def" [] (Ann (Src 31885946257652 (Lam "nam" λxnam (Src 31885952549108 (Lam "val" λxval (Src 31885958840564 (Lam "bod" λxbod (Src 31885967229172 (Ins (Src 31885968277748 (Lam "P" λxP (Src 31885972472052 (Lam "all" λxall (Src 31885978763508 (Lam "lam" λxlam (Src 31885985054964 (Lam "app" λxapp (Src 31885991346420 (Lam "ann" λxann (Src 31885997637876 (Lam "slf" λxslf (Src 31886003929332 (Lam "ins" λxins (Src 31886010220788 (Lam "ref" λxref (Src 31886016512244 (Lam "def" λxdef (Src 31886022803700 (Lam "set" λxset (Src 31886029095156 (Lam "u60" λxu60 (Src 31886035386612 (Lam "num" λxnum (Src 31886041678068 (Lam "op2" λxop2 (Src 31886047969524 (Lam "mat" λxmat (Src 31886054260980 (Lam "txt" λxtxt (Src 31886060552436 (Lam "hol" λxhol (Src 31886066843892 (Lam "var" λxvar (Src 31886075232500 (App (App (App (Src 31886076281063 xdef) (Src 31886080475371 xnam)) (Src 31886084669679 xval)) (Src 31886088863987 xbod))))))))))))))))))))))))))))))))))))))))))))) (Src 31885848739941 (All "nam" (Src 31885858177050 (Book.String)) λxnam (Src 31885868662885 (All "val" (Src 31885878100016 (Book.Kind.Term)) λxval (Src 31885891731557 (All "bod" (Src 31885901168728 (All "x" (Src 31885908508749 (Book.Kind.Term)) λxx (Src 31885920043096 (Book.Kind.Term)))) λxbod (Src 31885933674597 (Book.Kind.Term)))))))))) -Book.Kind.equal = (Ref "Kind.equal" [] (Ann (Src 76965893636239 (Lam "a" λxa (Src 76965897830543 (Lam "b" λxb (Src 76965902024847 (Lam "dep" λxdep (Src 76965910413455 (App (App (App (App (Src 76965911461997 (Book.Kind.equal.minor)) (Src 76965929287814 (App (App (App (Src 76965930336381 (Book.Kind.identical)) (Src 76965946065023 xa)) (Src 76965948162177 xb)) (Src 76965950259333 xdep)))) (Src 76965955502216 xa)) (Src 76965957599370 xb)) (Src 76965959696526 xdep))))))))) (Src 76965827575881 (All "a" (Src 76965834915869 (Book.Kind.Term)) λxa (Src 76965848547401 (All "b" (Src 76965855887409 (Book.Kind.Term)) λxb (Src 76965869518921 (All "dep" (Src 76965878956097 (Book.Nat)) λxdep (Src 76965886296137 (Book.Bool)))))))))) -Book.Kind.equal.enter = (Ref "Kind.equal.enter" [] (Ann (Src 80264450539836 (Lam "e" λxe (Src 80264454734140 (Lam "a" λxa (Src 80264458928444 (Lam "b" λxb (Src 80264463122748 (Lam "dep" λxdep (Src 80264471511356 (Let "P" (Src 80264484094139 (Lam "x" λxx (Src 80264488288443 (All "a" (Src 80264495628437 (Book.Kind.Term)) λxa (Src 80264507162811 (All "b" (Src 80264514502823 (Book.Kind.Term)) λxb (Src 80264526037179 (All "dep" (Src 80264535474357 (Book.Nat)) λxdep (Src 80264540717243 (Book.Bool)))))))))) λxP (Src 80264548057404 (Let "true" (Src 80264560640225 (Lam "a" λxa (Src 80264564834529 (Lam "b" λxb (Src 80264569028833 (Lam "dep" λxdep (Src 80264575320289 (Book.Bool.true)))))))) λxtrue (Src 80264587903292 (Let "false" (Src 80264600486176 (Lam "a" λxa (Src 80264604680480 (Lam "b" λxb (Src 80264608874784 (Lam "dep" λxdep (Src 80264615166240 (App (App (App (App (Src 80264616214796 (Book.Kind.comparer)) (Src 80264630894871 (Book.Kind.equal))) (Src 80264642429209 xa)) (Src 80264644526363 xb)) (Src 80264646623519 xdep))))))))) λxfalse (Src 80264653963580 (App (App (App (App (App (App (Src 80264655012134 (Ins (Src 80264656060710 xe))) (Src 80264658157864 xP)) (Src 80264660255021 xtrue)) (Src 80264665497907 xfalse)) (Src 80264671789365 xa)) (Src 80264673886519 xb)) (Src 80264675983675 xdep))))))))))))))))) (Src 80264368750686 (All "e" (Src 80264376090654 (Book.Bool)) λxe (Src 80264384479326 (All "a" (Src 80264391819314 (Book.Kind.Term)) λxa (Src 80264405450846 (All "b" (Src 80264412790854 (Book.Kind.Term)) λxb (Src 80264426422366 (All "dep" (Src 80264435859542 (Book.Nat)) λxdep (Src 80264443199582 (Book.Bool)))))))))))) -Book.Kind.equal.major = (Ref "Kind.equal.major" [] (Ann (Src 79164938912181 (Lam "e" λxe (Src 79164943106485 (Lam "a" λxa (Src 79164947300789 (Lam "b" λxb (Src 79164951495093 (Lam "dep" λxdep (Src 79164959883701 (Let "P" (Src 79164972466363 (Lam "x" λxx (Src 79164976660667 (All "a" (Src 79164984000661 (Book.Kind.Term)) λxa (Src 79164995535035 (All "b" (Src 79165002875047 (Book.Kind.Term)) λxb (Src 79165014409403 (All "dep" (Src 79165023846581 (Book.Nat)) λxdep (Src 79165029089467 (Book.Bool)))))))))) λxP (Src 79165036429749 (Let "true" (Src 79165049012449 (Lam "a" λxa (Src 79165053206753 (Lam "b" λxb (Src 79165057401057 (Lam "dep" λxdep (Src 79165063692513 (Book.Bool.true)))))))) λxtrue (Src 79165076275637 (Let "false" (Src 79165088858521 (Lam "a" λxa (Src 79165093052825 (Lam "b" λxb (Src 79165097247129 (Lam "dep" λxdep (Src 79165107732889 (Let "a_wnf" (Src 79165120315687 (App (App (Src 79165121364250 (Book.Kind.reduce)) (Src 79165133947172 (Book.Bool.true))) (Src 79165144432934 xa))) λxa_wnf (Src 79165151773081 (Let "b_wnf" (Src 79165164355921 (App (App (Src 79165165404484 (Book.Kind.reduce)) (Src 79165177987406 (Book.Bool.true))) (Src 79165188473168 xb))) λxb_wnf (Src 79165195813273 (App (App (App (App (Src 79165196861799 (Book.Kind.equal.enter)) (Src 79165214687624 (App (App (App (Src 79165215736183 (Book.Kind.identical)) (Src 79165231464829 xa_wnf)) (Src 79165237756291 xb_wnf)) (Src 79165244047751 xdep)))) (Src 79165249290638 xa_wnf)) (Src 79165255582100 xb_wnf)) (Src 79165261873560 xdep))))))))))))) λxfalse (Src 79165269213621 (App (App (App (App (App (App (Src 79165270262175 (Ins (Src 79165271310751 xe))) (Src 79165273407905 xP)) (Src 79165275505062 xtrue)) (Src 79165280747948 xfalse)) (Src 79165287039406 xa)) (Src 79165289136560 xb)) (Src 79165291233716 xdep))))))))))))))))) (Src 79164857122910 (All "e" (Src 79164864462878 (Book.Bool)) λxe (Src 79164872851550 (All "a" (Src 79164880191538 (Book.Kind.Term)) λxa (Src 79164893823070 (All "b" (Src 79164901163078 (Book.Kind.Term)) λxb (Src 79164914794590 (All "dep" (Src 79164924231766 (Book.Nat)) λxdep (Src 79164931571806 (Book.Bool)))))))))))) -Book.Kind.equal.minor = (Ref "Kind.equal.minor" [] (Ann (Src 78065427284407 (Lam "e" λxe (Src 78065431478711 (Lam "a" λxa (Src 78065435673015 (Lam "b" λxb (Src 78065439867319 (Lam "dep" λxdep (Src 78065448255927 (Let "P" (Src 78065460838587 (Lam "x" λxx (Src 78065465032891 (All "a" (Src 78065472372885 (Book.Kind.Term)) λxa (Src 78065483907259 (All "b" (Src 78065491247271 (Book.Kind.Term)) λxb (Src 78065502781627 (All "dep" (Src 78065512218805 (Book.Nat)) λxdep (Src 78065517461691 (Book.Bool)))))))))) λxP (Src 78065524801975 (Let "true" (Src 78065537384673 (Lam "a" λxa (Src 78065541578977 (Lam "b" λxb (Src 78065545773281 (Lam "dep" λxdep (Src 78065552064737 (Book.Bool.true)))))))) λxtrue (Src 78065564647863 (Let "false" (Src 78065577230747 (Lam "a" λxa (Src 78065581425051 (Lam "b" λxb (Src 78065585619355 (Lam "dep" λxdep (Src 78065596105115 (Let "a_wnf" (Src 78065608687912 (App (App (Src 78065609736474 (Book.Kind.reduce)) (Src 78065622319397 (Book.Bool.false))) (Src 78065633853735 xa))) λxa_wnf (Src 78065641193883 (Let "b_wnf" (Src 78065653776723 (App (App (Src 78065654825285 (Book.Kind.reduce)) (Src 78065667408208 (Book.Bool.false))) (Src 78065678942546 xb))) λxb_wnf (Src 78065686282651 (App (App (App (App (Src 78065687331177 (Book.Kind.equal.major)) (Src 78065705157002 (App (App (App (Src 78065706205561 (Book.Kind.identical)) (Src 78065721934207 xa_wnf)) (Src 78065728225669 xb_wnf)) (Src 78065734517129 xdep)))) (Src 78065739760016 xa_wnf)) (Src 78065746051478 xb_wnf)) (Src 78065752342938 xdep))))))))))))) λxfalse (Src 78065759682999 (App (App (App (App (App (App (Src 78065760731553 (Ins (Src 78065761780129 xe))) (Src 78065763877283 xP)) (Src 78065765974440 xtrue)) (Src 78065771217326 xfalse)) (Src 78065777508784 xa)) (Src 78065779605938 xb)) (Src 78065781703094 xdep))))))))))))))))) (Src 78065345495134 (All "e" (Src 78065352835102 (Book.Bool)) λxe (Src 78065361223774 (All "a" (Src 78065368563762 (Book.Kind.Term)) λxa (Src 78065382195294 (All "b" (Src 78065389535302 (Book.Kind.Term)) λxb (Src 78065403166814 (All "dep" (Src 78065412603990 (Book.Nat)) λxdep (Src 78065419944030 (Book.Bool)))))))))))) -Book.Kind.hol = (Ref "Kind.hol" [] (Ann (Src 32985423282377 (Lam "nam" λxnam (Src 32985429573833 (Lam "ctx" λxctx (Src 32985437962441 (Ins (Src 32985439011017 (Lam "P" λxP (Src 32985443205321 (Lam "all" λxall (Src 32985449496777 (Lam "lam" λxlam (Src 32985455788233 (Lam "app" λxapp (Src 32985462079689 (Lam "ann" λxann (Src 32985468371145 (Lam "slf" λxslf (Src 32985474662601 (Lam "ins" λxins (Src 32985480954057 (Lam "ref" λxref (Src 32985487245513 (Lam "def" λxdef (Src 32985493536969 (Lam "set" λxset (Src 32985499828425 (Lam "u60" λxu60 (Src 32985506119881 (Lam "num" λxnum (Src 32985512411337 (Lam "op2" λxop2 (Src 32985518702793 (Lam "mat" λxmat (Src 32985524994249 (Lam "txt" λxtxt (Src 32985531285705 (Lam "hol" λxhol (Src 32985537577161 (Lam "var" λxvar (Src 32985545965769 (App (App (Src 32985547014336 xhol) (Src 32985551208644 xnam)) (Src 32985555402952 xctx))))))))))))))))))))))))))))))))))))))))))) (Src 32985360367684 (All "nam" (Src 32985369804826 (Book.String)) λxnam (Src 32985380290628 (All "ctx" (Src 32985389727799 (App (Src 32985390776364 (Book.List)) (Src 32985396019254 (Book.Kind.Term)))) λxctx (Src 32985410699332 (Book.Kind.Term)))))))) -Book.Kind.identical = (Ref "Kind.identical" [] (Ann (Src 97856618758278 (Lam "a" λxa (Src 97856622952582 (Lam "b" λxb (Src 97856627146886 (Lam "dep" λxdep (Src 97856635535494 (App (App (App (App (Src 97856636584046 (Book.Kind.comparer)) (Src 97856651264125 (Book.Kind.identical))) (Src 97856666992767 xa)) (Src 97856669089921 xb)) (Src 97856671187077 xdep))))))))) (Src 97856552697933 (All "a" (Src 97856560037921 (Book.Kind.Term)) λxa (Src 97856573669453 (All "b" (Src 97856581009461 (Book.Kind.Term)) λxb (Src 97856594640973 (All "dep" (Src 97856604078149 (Book.Nat)) λxdep (Src 97856611418189 (Book.Bool)))))))))) -Book.Kind.if.all = (Ref "Kind.if.all" [] (Ann (Src 53876250117463 (Lam "term" λxterm (Src 53876257457495 (Lam "P" λxP (Src 53876261651799 (Lam "Y" λxY (Src 53876265846103 (Lam "N" λxN (Src 53876272137559 (Let "P" (Src 53876282622275 (Lam "x" λxx (Src 53876286816579 (All "Y" (Src 53876294156578 (All "nam" (Src 53876303593701 (Book.String)) λxnam (Src 53876311982370 (All "inp" (Src 53876321419513 (Book.Kind.Term)) λxinp (Src 53876332953890 (All "bod" (Src 53876342391071 (All "x" (Src 53876349731092 (Book.Kind.Term)) λxx (Src 53876361265439 (Book.Kind.Term)))) λxbod (Src 53876372799778 xP))))))) λxY (Src 53876375945539 (All "N" (Src 53876383285568 (All "val" (Src 53876392722749 (Book.Kind.Term)) λxval (Src 53876404257088 xP))) λxN (Src 53876407402819 xP))))))) λxP (Src 53876411598167 (Let "all" (Src 53876422082939 (Lam "nam" λxnam (Src 53876428374395 (Lam "inp" λxinp (Src 53876434665851 (Lam "bod" λxbod (Src 53876443054459 (Lam "Y" λxY (Src 53876447248763 (Lam "N" λxN (Src 53876451443067 (App (App (App (Src 53876452491630 xY) (Src 53876454588786 xnam)) (Src 53876458783094 xinp)) (Src 53876462977402 xbod))))))))))))) λxall (Src 53876470318423 (Let "lam" (Src 53876480803257 (Lam "nam" λxnam (Src 53876487094713 (Lam "bod" λxbod (Src 53876500726201 (Lam "Y" λxY (Src 53876504920505 (Lam "N" λxN (Src 53876509114809 (App (Src 53876510163365 xN) (Src 53876512260536 (App (App (Src 53876513309103 (Book.Kind.lam)) (Src 53876522746291 xnam)) (Src 53876526940599 xbod))))))))))))) λxlam (Src 53876535330135 (Let "app" (Src 53876545815031 (Lam "fun" λxfun (Src 53876552106487 (Lam "arg" λxarg (Src 53876565737975 (Lam "Y" λxY (Src 53876569932279 (Lam "N" λxN (Src 53876574126583 (App (Src 53876575175139 xN) (Src 53876577272310 (App (App (Src 53876578320877 (Book.Kind.app)) (Src 53876587758065 xfun)) (Src 53876591952373 xarg))))))))))))) λxapp (Src 53876600341847 (Let "ann" (Src 53876610826805 (Lam "val" λxval (Src 53876617118261 (Lam "typ" λxtyp (Src 53876630749749 (Lam "Y" λxY (Src 53876634944053 (Lam "N" λxN (Src 53876639138357 (App (Src 53876640186913 xN) (Src 53876642284084 (App (App (Src 53876643332651 (Book.Kind.ann)) (Src 53876652769839 xval)) (Src 53876656964147 xtyp))))))))))))) λxann (Src 53876665353559 (Let "slf" (Src 53876675838579 (Lam "nam" λxnam (Src 53876682130035 (Lam "bod" λxbod (Src 53876695761523 (Lam "Y" λxY (Src 53876699955827 (Lam "N" λxN (Src 53876704150131 (App (Src 53876705198687 xN) (Src 53876707295858 (App (App (Src 53876708344425 (Book.Kind.slf)) (Src 53876717781613 xnam)) (Src 53876721975921 xbod))))))))))))) λxslf (Src 53876730365271 (Let "ins" (Src 53876740850348 (Lam "val" λxval (Src 53876759724716 (Lam "Y" λxY (Src 53876763919020 (Lam "N" λxN (Src 53876768113324 (App (Src 53876769161884 xN) (Src 53876771259051 (App (Src 53876772307622 (Book.Kind.ins)) (Src 53876781744810 xval))))))))))) λxins (Src 53876790134103 (Let "ref" (Src 53876800619242 (Lam "nam" λxnam (Src 53876806910698 (Lam "val" λxval (Src 53876820542186 (Lam "Y" λxY (Src 53876824736490 (Lam "N" λxN (Src 53876828930794 (App (Src 53876829979350 xN) (Src 53876832076521 (App (App (Src 53876833125088 (Book.Kind.ref)) (Src 53876842562276 xnam)) (Src 53876846756584 xval))))))))))))) λxref (Src 53876855145815 (Let "def" (Src 53876865631021 (Lam "nam" λxnam (Src 53876871922477 (Lam "val" λxval (Src 53876878213933 (Lam "bod" λxbod (Src 53876886602541 (Lam "Y" λxY (Src 53876890796845 (Lam "N" λxN (Src 53876894991149 (App (Src 53876896039701 xN) (Src 53876898136876 (App (App (App (Src 53876899185439 (Book.Kind.def)) (Src 53876908622627 xnam)) (Src 53876912816935 xval)) (Src 53876917011243 xbod))))))))))))))) λxdef (Src 53876925400407 (Let "set" (Src 53876953711455 (Lam "Y" λxY (Src 53876957905759 (Lam "N" λxN (Src 53876962100063 (App (Src 53876963148629 xN) (Src 53876965245790 (Book.Kind.set)))))))) λxset (Src 53876977829207 (Let "u60" (Src 53877006140305 (Lam "Y" λxY (Src 53877010334609 (Lam "N" λxN (Src 53877014528913 (App (Src 53877015577479 xN) (Src 53877017674640 (Book.Kind.u60)))))))) λxu60 (Src 53877030258007 (Let "num" (Src 53877040743370 (Lam "val" λxval (Src 53877059617738 (Lam "Y" λxY (Src 53877063812042 (Lam "N" λxN (Src 53877068006346 (App (Src 53877069054906 xN) (Src 53877071152073 (App (Src 53877072200644 (Book.Kind.num)) (Src 53877081637832 xval))))))))))) λxnum (Src 53877090026839 (Let "op2" (Src 53877100512269 (Lam "opr" λxopr (Src 53877106803725 (Lam "fst" λxfst (Src 53877113095181 (Lam "snd" λxsnd (Src 53877121483789 (Lam "Y" λxY (Src 53877125678093 (Lam "N" λxN (Src 53877129872397 (App (Src 53877130920949 xN) (Src 53877133018124 (App (App (App (Src 53877134066687 (Book.Kind.op2)) (Src 53877143503875 xopr)) (Src 53877147698183 xfst)) (Src 53877151892491 xsnd))))))))))))))) λxop2 (Src 53877160281431 (Let "mat" (Src 53877170766930 (Lam "nam" λxnam (Src 53877177058386 (Lam "x" λxx (Src 53877181252690 (Lam "z" λxz (Src 53877185446994 (Lam "s" λxs (Src 53877189641298 (Lam "p" λxp (Src 53877193835602 (Lam "Y" λxY (Src 53877198029906 (Lam "N" λxN (Src 53877202224210 (App (Src 53877203272762 xN) (Src 53877205369937 (App (App (App (App (App (Src 53877206418500 (Book.Kind.mat)) (Src 53877215855688 xnam)) (Src 53877220049994 xx)) (Src 53877222147148 xz)) (Src 53877224244302 xs)) (Src 53877226341456 xp))))))))))))))))))) λxmat (Src 53877232633175 (Let "txt" (Src 53877243118731 (Lam "lit" λxlit (Src 53877261993099 (Lam "Y" λxY (Src 53877266187403 (Lam "N" λxN (Src 53877270381707 (App (Src 53877271430267 xN) (Src 53877273527434 (App (Src 53877274576005 (Book.Kind.txt)) (Src 53877284013193 xlit))))))))))) λxtxt (Src 53877292402007 (Let "hol" (Src 53877302887625 (Lam "nam" λxnam (Src 53877309179081 (Lam "ctx" λxctx (Src 53877322810569 (Lam "Y" λxY (Src 53877327004873 (Lam "N" λxN (Src 53877331199177 (App (Src 53877332247733 xN) (Src 53877334344904 (App (App (Src 53877335393471 (Book.Kind.hol)) (Src 53877344830659 xnam)) (Src 53877349024967 xctx))))))))))))) λxhol (Src 53877357413719 (Let "var" (Src 53877367899399 (Lam "nam" λxnam (Src 53877374190855 (Lam "idx" λxidx (Src 53877387822343 (Lam "Y" λxY (Src 53877392016647 (Lam "N" λxN (Src 53877396210951 (App (Src 53877397259507 xN) (Src 53877399356678 (App (App (Src 53877400405245 (Book.Kind.var)) (Src 53877409842433 xnam)) (Src 53877414036741 xidx))))))))))))) λxvar (Src 53877422425431 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 53877423473936 (Ins (Src 53877424522512 xterm))) (Src 53877429765394 xP)) (Src 53877431862550 xall)) (Src 53877436056858 xlam)) (Src 53877440251166 xapp)) (Src 53877444445474 xann)) (Src 53877448639782 xslf)) (Src 53877452834090 xins)) (Src 53877457028398 xref)) (Src 53877461222706 xdef)) (Src 53877465417014 xset)) (Src 53877469611322 xu60)) (Src 53877473805630 xnum)) (Src 53877477999938 xop2)) (Src 53877482194246 xmat)) (Src 53877486388554 xtxt)) (Src 53877490582862 xhol)) (Src 53877494777170 xvar)) (Src 53877498971476 xY)) (Src 53877501068630 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 53876084441257 (All "term" (Src 53876094926881 (Book.Kind.Term)) λxterm (Src 53876108558505 (All "P" (Src 53876115898413 (Set)) λxP (Src 53876121141417 (All "Y" (Src 53876128481412 (All "nam" (Src 53876137918535 (Book.String)) λxnam (Src 53876146307204 (All "inp" (Src 53876155744347 (Book.Kind.Term)) λxinp (Src 53876167278724 (All "bod" (Src 53876176715905 (All "x" (Src 53876184055926 (Book.Kind.Term)) λxx (Src 53876195590273 (Book.Kind.Term)))) λxbod (Src 53876207124612 xP))))))) λxY (Src 53876212367529 (All "N" (Src 53876219707556 (All "val" (Src 53876229144737 (Book.Kind.Term)) λxval (Src 53876240679076 xP))) λxN (Src 53876245921961 xP))))))))))) -Book.Kind.if.app = (Ref "Kind.if.app" [] (Ann (Src 83563027367185 (Lam "term" λxterm (Src 83563034707217 (Lam "P" λxP (Src 83563038901521 (Lam "Y" λxY (Src 83563043095825 (Lam "N" λxN (Src 83563049387281 (Let "P" (Src 83563059871997 (Lam "x" λxx (Src 83563064066301 (All "Y" (Src 83563071406300 (All "fun" (Src 83563080843461 (Book.Kind.Term)) λxfun (Src 83563092377820 (All "arg" (Src 83563101815001 (Book.Kind.Term)) λxarg (Src 83563113349340 xP))))) λxY (Src 83563116495101 (All "N" (Src 83563123835130 (All "val" (Src 83563133272311 (Book.Kind.Term)) λxval (Src 83563144806650 xP))) λxN (Src 83563147952381 xP))))))) λxP (Src 83563152147729 (Let "all" (Src 83563162632512 (Lam "nam" λxnam (Src 83563168923968 (Lam "inp" λxinp (Src 83563175215424 (Lam "bod" λxbod (Src 83563183604032 (Lam "Y" λxY (Src 83563187798336 (Lam "N" λxN (Src 83563191992640 (App (Src 83563193041192 xN) (Src 83563195138367 (App (App (App (Src 83563196186930 (Book.Kind.all)) (Src 83563205624118 xnam)) (Src 83563209818426 xinp)) (Src 83563214012734 xbod))))))))))))))) λxall (Src 83563222402321 (Let "lam" (Src 83563232887166 (Lam "nam" λxnam (Src 83563239178622 (Lam "bod" λxbod (Src 83563252810110 (Lam "Y" λxY (Src 83563257004414 (Lam "N" λxN (Src 83563261198718 (App (Src 83563262247274 xN) (Src 83563264344445 (App (App (Src 83563265393012 (Book.Kind.lam)) (Src 83563274830200 xnam)) (Src 83563279024508 xbod))))))))))))) λxlam (Src 83563287414033 (Let "app" (Src 83563297898929 (Lam "fun" λxfun (Src 83563304190385 (Lam "arg" λxarg (Src 83563317821873 (Lam "Y" λxY (Src 83563322016177 (Lam "N" λxN (Src 83563326210481 (App (App (Src 83563327259048 xY) (Src 83563329356204 xfun)) (Src 83563333550512 xarg))))))))))) λxapp (Src 83563340891409 (Let "ann" (Src 83563351376367 (Lam "val" λxval (Src 83563357667823 (Lam "typ" λxtyp (Src 83563371299311 (Lam "Y" λxY (Src 83563375493615 (Lam "N" λxN (Src 83563379687919 (App (Src 83563380736475 xN) (Src 83563382833646 (App (App (Src 83563383882213 (Book.Kind.ann)) (Src 83563393319401 xval)) (Src 83563397513709 xtyp))))))))))))) λxann (Src 83563405903121 (Let "slf" (Src 83563416388141 (Lam "nam" λxnam (Src 83563422679597 (Lam "bod" λxbod (Src 83563436311085 (Lam "Y" λxY (Src 83563440505389 (Lam "N" λxN (Src 83563444699693 (App (Src 83563445748249 xN) (Src 83563447845420 (App (App (Src 83563448893987 (Book.Kind.slf)) (Src 83563458331175 xnam)) (Src 83563462525483 xbod))))))))))))) λxslf (Src 83563470914833 (Let "ins" (Src 83563481399910 (Lam "val" λxval (Src 83563500274278 (Lam "Y" λxY (Src 83563504468582 (Lam "N" λxN (Src 83563508662886 (App (Src 83563509711446 xN) (Src 83563511808613 (App (Src 83563512857184 (Book.Kind.ins)) (Src 83563522294372 xval))))))))))) λxins (Src 83563530683665 (Let "ref" (Src 83563541168804 (Lam "nam" λxnam (Src 83563547460260 (Lam "val" λxval (Src 83563561091748 (Lam "Y" λxY (Src 83563565286052 (Lam "N" λxN (Src 83563569480356 (App (Src 83563570528912 xN) (Src 83563572626083 (App (App (Src 83563573674650 (Book.Kind.ref)) (Src 83563583111838 xnam)) (Src 83563587306146 xval))))))))))))) λxref (Src 83563595695377 (Let "def" (Src 83563606180583 (Lam "nam" λxnam (Src 83563612472039 (Lam "val" λxval (Src 83563618763495 (Lam "bod" λxbod (Src 83563627152103 (Lam "Y" λxY (Src 83563631346407 (Lam "N" λxN (Src 83563635540711 (App (Src 83563636589263 xN) (Src 83563638686438 (App (App (App (Src 83563639735001 (Book.Kind.def)) (Src 83563649172189 xnam)) (Src 83563653366497 xval)) (Src 83563657560805 xbod))))))))))))))) λxdef (Src 83563665949969 (Let "set" (Src 83563694261017 (Lam "Y" λxY (Src 83563698455321 (Lam "N" λxN (Src 83563702649625 (App (Src 83563703698191 xN) (Src 83563705795352 (Book.Kind.set)))))))) λxset (Src 83563718378769 (Let "u60" (Src 83563746689867 (Lam "Y" λxY (Src 83563750884171 (Lam "N" λxN (Src 83563755078475 (App (Src 83563756127041 xN) (Src 83563758224202 (Book.Kind.u60)))))))) λxu60 (Src 83563770807569 (Let "num" (Src 83563781292932 (Lam "val" λxval (Src 83563800167300 (Lam "Y" λxY (Src 83563804361604 (Lam "N" λxN (Src 83563808555908 (App (Src 83563809604468 xN) (Src 83563811701635 (App (Src 83563812750206 (Book.Kind.num)) (Src 83563822187394 xval))))))))))) λxnum (Src 83563830576401 (Let "op2" (Src 83563841061831 (Lam "opr" λxopr (Src 83563847353287 (Lam "fst" λxfst (Src 83563853644743 (Lam "snd" λxsnd (Src 83563862033351 (Lam "Y" λxY (Src 83563866227655 (Lam "N" λxN (Src 83563870421959 (App (Src 83563871470511 xN) (Src 83563873567686 (App (App (App (Src 83563874616249 (Book.Kind.op2)) (Src 83563884053437 xopr)) (Src 83563888247745 xfst)) (Src 83563892442053 xsnd))))))))))))))) λxop2 (Src 83563900830993 (Let "mat" (Src 83563911316492 (Lam "nam" λxnam (Src 83563917607948 (Lam "x" λxx (Src 83563921802252 (Lam "z" λxz (Src 83563925996556 (Lam "s" λxs (Src 83563930190860 (Lam "p" λxp (Src 83563934385164 (Lam "Y" λxY (Src 83563938579468 (Lam "N" λxN (Src 83563942773772 (App (Src 83563943822324 xN) (Src 83563945919499 (App (App (App (App (App (Src 83563946968062 (Book.Kind.mat)) (Src 83563956405250 xnam)) (Src 83563960599556 xx)) (Src 83563962696710 xz)) (Src 83563964793864 xs)) (Src 83563966891018 xp))))))))))))))))))) λxmat (Src 83563973182737 (Let "txt" (Src 83563983668293 (Lam "lit" λxlit (Src 83564002542661 (Lam "Y" λxY (Src 83564006736965 (Lam "N" λxN (Src 83564010931269 (App (Src 83564011979829 xN) (Src 83564014076996 (App (Src 83564015125567 (Book.Kind.txt)) (Src 83564024562755 xlit))))))))))) λxtxt (Src 83564032951569 (Let "hol" (Src 83564043437187 (Lam "nam" λxnam (Src 83564049728643 (Lam "ctx" λxctx (Src 83564063360131 (Lam "Y" λxY (Src 83564067554435 (Lam "N" λxN (Src 83564071748739 (App (Src 83564072797295 xN) (Src 83564074894466 (App (App (Src 83564075943033 (Book.Kind.hol)) (Src 83564085380221 xnam)) (Src 83564089574529 xctx))))))))))))) λxhol (Src 83564097963281 (Let "var" (Src 83564108448961 (Lam "nam" λxnam (Src 83564114740417 (Lam "idx" λxidx (Src 83564128371905 (Lam "Y" λxY (Src 83564132566209 (Lam "N" λxN (Src 83564136760513 (App (Src 83564137809069 xN) (Src 83564139906240 (App (App (Src 83564140954807 (Book.Kind.var)) (Src 83564150391995 xnam)) (Src 83564154586303 xidx))))))))))))) λxvar (Src 83564162974993 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 83564164023498 (Ins (Src 83564165072074 xterm))) (Src 83564170314956 xP)) (Src 83564172412112 xall)) (Src 83564176606420 xlam)) (Src 83564180800728 xapp)) (Src 83564184995036 xann)) (Src 83564189189344 xslf)) (Src 83564193383652 xins)) (Src 83564197577960 xref)) (Src 83564201772268 xdef)) (Src 83564205966576 xset)) (Src 83564210160884 xu60)) (Src 83564214355192 xnum)) (Src 83564218549500 xop2)) (Src 83564222743808 xmat)) (Src 83564226938116 xtxt)) (Src 83564231132424 xhol)) (Src 83564235326732 xvar)) (Src 83564239521038 xY)) (Src 83564241618192 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 83562898391174 (All "term" (Src 83562908876833 (Book.Kind.Term)) λxterm (Src 83562922508422 (All "P" (Src 83562929848365 (Set)) λxP (Src 83562935091334 (All "Y" (Src 83562942431329 (All "fun" (Src 83562951868490 (Book.Kind.Term)) λxfun (Src 83562963402849 (All "arg" (Src 83562972840030 (Book.Kind.Term)) λxarg (Src 83562984374369 xP))))) λxY (Src 83562989617286 (All "N" (Src 83562996957313 (All "val" (Src 83563006394494 (Book.Kind.Term)) λxval (Src 83563017928833 xP))) λxN (Src 83563023171718 xP))))))))))) -Book.Kind.if.hol = (Ref "Kind.if.hol" [] (Ann (Src 84662543189273 (Lam "term" λxterm (Src 84662550529305 (Lam "P" λxP (Src 84662554723609 (Lam "Y" λxY (Src 84662558917913 (Lam "N" λxN (Src 84662565209369 (Let "P" (Src 84662575694085 (Lam "x" λxx (Src 84662579888389 (All "Y" (Src 84662587228388 (All "nam" (Src 84662596665542 (Book.String)) λxnam (Src 84662605054180 (All "ctx" (Src 84662614491361 (App (Src 84662615539926 (Book.List)) (Src 84662620782816 (Book.Kind.Term)))) λxctx (Src 84662633365732 xP))))) λxY (Src 84662636511493 (All "N" (Src 84662643851522 (All "val" (Src 84662653288703 (Book.Kind.Term)) λxval (Src 84662664823042 xP))) λxN (Src 84662667968773 xP))))))) λxP (Src 84662672164121 (Let "all" (Src 84662682648904 (Lam "nam" λxnam (Src 84662688940360 (Lam "inp" λxinp (Src 84662695231816 (Lam "bod" λxbod (Src 84662703620424 (Lam "Y" λxY (Src 84662707814728 (Lam "N" λxN (Src 84662712009032 (App (Src 84662713057584 xN) (Src 84662715154759 (App (App (App (Src 84662716203322 (Book.Kind.all)) (Src 84662725640510 xnam)) (Src 84662729834818 xinp)) (Src 84662734029126 xbod))))))))))))))) λxall (Src 84662742418713 (Let "lam" (Src 84662752903558 (Lam "nam" λxnam (Src 84662759195014 (Lam "bod" λxbod (Src 84662772826502 (Lam "Y" λxY (Src 84662777020806 (Lam "N" λxN (Src 84662781215110 (App (Src 84662782263666 xN) (Src 84662784360837 (App (App (Src 84662785409404 (Book.Kind.lam)) (Src 84662794846592 xnam)) (Src 84662799040900 xbod))))))))))))) λxlam (Src 84662807430425 (Let "app" (Src 84662817915332 (Lam "fun" λxfun (Src 84662824206788 (Lam "arg" λxarg (Src 84662837838276 (Lam "Y" λxY (Src 84662842032580 (Lam "N" λxN (Src 84662846226884 (App (Src 84662847275440 xN) (Src 84662849372611 (App (App (Src 84662850421178 (Book.Kind.app)) (Src 84662859858366 xfun)) (Src 84662864052674 xarg))))))))))))) λxapp (Src 84662872442137 (Let "ann" (Src 84662882927106 (Lam "val" λxval (Src 84662889218562 (Lam "typ" λxtyp (Src 84662902850050 (Lam "Y" λxY (Src 84662907044354 (Lam "N" λxN (Src 84662911238658 (App (Src 84662912287214 xN) (Src 84662914384385 (App (App (Src 84662915432952 (Book.Kind.ann)) (Src 84662924870140 xval)) (Src 84662929064448 xtyp))))))))))))) λxann (Src 84662937453849 (Let "slf" (Src 84662947938880 (Lam "nam" λxnam (Src 84662954230336 (Lam "bod" λxbod (Src 84662967861824 (Lam "Y" λxY (Src 84662972056128 (Lam "N" λxN (Src 84662976250432 (App (Src 84662977298988 xN) (Src 84662979396159 (App (App (Src 84662980444726 (Book.Kind.slf)) (Src 84662989881914 xnam)) (Src 84662994076222 xbod))))))))))))) λxslf (Src 84663002465561 (Let "ins" (Src 84663012950649 (Lam "val" λxval (Src 84663031825017 (Lam "Y" λxY (Src 84663036019321 (Lam "N" λxN (Src 84663040213625 (App (Src 84663041262185 xN) (Src 84663043359352 (App (Src 84663044407923 (Book.Kind.ins)) (Src 84663053845111 xval))))))))))) λxins (Src 84663062234393 (Let "ref" (Src 84663072719543 (Lam "nam" λxnam (Src 84663079010999 (Lam "val" λxval (Src 84663092642487 (Lam "Y" λxY (Src 84663096836791 (Lam "N" λxN (Src 84663101031095 (App (Src 84663102079651 xN) (Src 84663104176822 (App (App (Src 84663105225389 (Book.Kind.ref)) (Src 84663114662577 xnam)) (Src 84663118856885 xval))))))))))))) λxref (Src 84663127246105 (Let "def" (Src 84663137731322 (Lam "nam" λxnam (Src 84663144022778 (Lam "val" λxval (Src 84663150314234 (Lam "bod" λxbod (Src 84663158702842 (Lam "Y" λxY (Src 84663162897146 (Lam "N" λxN (Src 84663167091450 (App (Src 84663168140002 xN) (Src 84663170237177 (App (App (App (Src 84663171285740 (Book.Kind.def)) (Src 84663180722928 xnam)) (Src 84663184917236 xval)) (Src 84663189111544 xbod))))))))))))))) λxdef (Src 84663197500697 (Let "set" (Src 84663225811756 (Lam "Y" λxY (Src 84663230006060 (Lam "N" λxN (Src 84663234200364 (App (Src 84663235248930 xN) (Src 84663237346091 (Book.Kind.set)))))))) λxset (Src 84663249929497 (Let "u60" (Src 84663278240606 (Lam "Y" λxY (Src 84663282434910 (Lam "N" λxN (Src 84663286629214 (App (Src 84663287677780 xN) (Src 84663289774941 (Book.Kind.u60)))))))) λxu60 (Src 84663302358297 (Let "num" (Src 84663312843671 (Lam "val" λxval (Src 84663331718039 (Lam "Y" λxY (Src 84663335912343 (Lam "N" λxN (Src 84663340106647 (App (Src 84663341155207 xN) (Src 84663343252374 (App (Src 84663344300945 (Book.Kind.num)) (Src 84663353738133 xval))))))))))) λxnum (Src 84663362127129 (Let "op2" (Src 84663372612570 (Lam "opr" λxopr (Src 84663378904026 (Lam "fst" λxfst (Src 84663385195482 (Lam "snd" λxsnd (Src 84663393584090 (Lam "Y" λxY (Src 84663397778394 (Lam "N" λxN (Src 84663401972698 (App (Src 84663403021250 xN) (Src 84663405118425 (App (App (App (Src 84663406166988 (Book.Kind.op2)) (Src 84663415604176 xopr)) (Src 84663419798484 xfst)) (Src 84663423992792 xsnd))))))))))))))) λxop2 (Src 84663432381721 (Let "mat" (Src 84663442867231 (Lam "nam" λxnam (Src 84663449158687 (Lam "x" λxx (Src 84663453352991 (Lam "z" λxz (Src 84663457547295 (Lam "s" λxs (Src 84663461741599 (Lam "p" λxp (Src 84663465935903 (Lam "Y" λxY (Src 84663470130207 (Lam "N" λxN (Src 84663474324511 (App (Src 84663475373063 xN) (Src 84663477470238 (App (App (App (App (App (Src 84663478518801 (Book.Kind.mat)) (Src 84663487955989 xnam)) (Src 84663492150295 xx)) (Src 84663494247449 xz)) (Src 84663496344603 xs)) (Src 84663498441757 xp))))))))))))))))))) λxmat (Src 84663504733465 (Let "txt" (Src 84663515219032 (Lam "lit" λxlit (Src 84663534093400 (Lam "Y" λxY (Src 84663538287704 (Lam "N" λxN (Src 84663542482008 (App (Src 84663543530568 xN) (Src 84663545627735 (App (Src 84663546676306 (Book.Kind.txt)) (Src 84663556113494 xlit))))))))))) λxtxt (Src 84663564502297 (Let "hol" (Src 84663574987915 (Lam "nam" λxnam (Src 84663581279371 (Lam "ctx" λxctx (Src 84663594910859 (Lam "Y" λxY (Src 84663599105163 (Lam "N" λxN (Src 84663603299467 (App (App (Src 84663604348034 xY) (Src 84663606445190 xnam)) (Src 84663610639498 xctx))))))))))) λxhol (Src 84663617979673 (Let "var" (Src 84663628465353 (Lam "nam" λxnam (Src 84663634756809 (Lam "idx" λxidx (Src 84663648388297 (Lam "Y" λxY (Src 84663652582601 (Lam "N" λxN (Src 84663656776905 (App (Src 84663657825461 xN) (Src 84663659922632 (App (App (Src 84663660971199 (Book.Kind.var)) (Src 84663670408387 xnam)) (Src 84663674602695 xidx))))))))))))) λxvar (Src 84663682991385 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 84663684039890 (Ins (Src 84663685088466 xterm))) (Src 84663690331348 xP)) (Src 84663692428504 xall)) (Src 84663696622812 xlam)) (Src 84663700817120 xapp)) (Src 84663705011428 xann)) (Src 84663709205736 xslf)) (Src 84663713400044 xins)) (Src 84663717594352 xref)) (Src 84663721788660 xdef)) (Src 84663725982968 xset)) (Src 84663730177276 xu60)) (Src 84663734371584 xnum)) (Src 84663738565892 xop2)) (Src 84663742760200 xmat)) (Src 84663746954508 xtxt)) (Src 84663751148816 xhol)) (Src 84663755343124 xvar)) (Src 84663759537430 xY)) (Src 84663761634584 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 84662410018954 (All "term" (Src 84662420504609 (Book.Kind.Term)) λxterm (Src 84662434136202 (All "P" (Src 84662441476141 (Set)) λxP (Src 84662446719114 (All "Y" (Src 84662454059109 (All "nam" (Src 84662463496263 (Book.String)) λxnam (Src 84662471884901 (All "ctx" (Src 84662481322082 (App (Src 84662482370647 (Book.List)) (Src 84662487613537 (Book.Kind.Term)))) λxctx (Src 84662500196453 xP))))) λxY (Src 84662505439370 (All "N" (Src 84662512779397 (All "val" (Src 84662522216578 (Book.Kind.Term)) λxval (Src 84662533750917 xP))) λxN (Src 84662538993802 xP))))))))))) -Book.Kind.if.lam = (Ref "Kind.if.lam" [] (Ann (Src 60473298912559 (Lam "term" λxterm (Src 60473306252591 (Lam "P" λxP (Src 60473310446895 (Lam "Y" λxY (Src 60473314641199 (Lam "N" λxN (Src 60473320932655 (Let "P" (Src 60473331417371 (Lam "x" λxx (Src 60473335611675 (All "Y" (Src 60473342951674 (All "nam" (Src 60473352388817 (Book.String)) λxnam (Src 60473360777466 (All "bod" (Src 60473370214647 (All "x" (Src 60473377554668 (Book.Kind.Term)) λxx (Src 60473389089015 (Book.Kind.Term)))) λxbod (Src 60473400623354 xP))))) λxY (Src 60473403769115 (All "N" (Src 60473411109144 (All "val" (Src 60473420546325 (Book.Kind.Term)) λxval (Src 60473432080664 xP))) λxN (Src 60473435226395 xP))))))) λxP (Src 60473439421743 (Let "all" (Src 60473449906526 (Lam "nam" λxnam (Src 60473456197982 (Lam "inp" λxinp (Src 60473462489438 (Lam "bod" λxbod (Src 60473470878046 (Lam "Y" λxY (Src 60473475072350 (Lam "N" λxN (Src 60473479266654 (App (Src 60473480315206 xN) (Src 60473482412381 (App (App (App (Src 60473483460944 (Book.Kind.all)) (Src 60473492898132 xnam)) (Src 60473497092440 xinp)) (Src 60473501286748 xbod))))))))))))))) λxall (Src 60473509676335 (Let "lam" (Src 60473520161169 (Lam "nam" λxnam (Src 60473526452625 (Lam "bod" λxbod (Src 60473540084113 (Lam "Y" λxY (Src 60473544278417 (Lam "N" λxN (Src 60473548472721 (App (App (Src 60473549521288 xY) (Src 60473551618444 xnam)) (Src 60473555812752 xbod))))))))))) λxlam (Src 60473563153711 (Let "app" (Src 60473573638607 (Lam "fun" λxfun (Src 60473579930063 (Lam "arg" λxarg (Src 60473593561551 (Lam "Y" λxY (Src 60473597755855 (Lam "N" λxN (Src 60473601950159 (App (Src 60473602998715 xN) (Src 60473605095886 (App (App (Src 60473606144453 (Book.Kind.app)) (Src 60473615581641 xfun)) (Src 60473619775949 xarg))))))))))))) λxapp (Src 60473628165423 (Let "ann" (Src 60473638650381 (Lam "val" λxval (Src 60473644941837 (Lam "typ" λxtyp (Src 60473658573325 (Lam "Y" λxY (Src 60473662767629 (Lam "N" λxN (Src 60473666961933 (App (Src 60473668010489 xN) (Src 60473670107660 (App (App (Src 60473671156227 (Book.Kind.ann)) (Src 60473680593415 xval)) (Src 60473684787723 xtyp))))))))))))) λxann (Src 60473693177135 (Let "slf" (Src 60473703662155 (Lam "nam" λxnam (Src 60473709953611 (Lam "bod" λxbod (Src 60473723585099 (Lam "Y" λxY (Src 60473727779403 (Lam "N" λxN (Src 60473731973707 (App (Src 60473733022263 xN) (Src 60473735119434 (App (App (Src 60473736168001 (Book.Kind.slf)) (Src 60473745605189 xnam)) (Src 60473749799497 xbod))))))))))))) λxslf (Src 60473758188847 (Let "ins" (Src 60473768673924 (Lam "val" λxval (Src 60473787548292 (Lam "Y" λxY (Src 60473791742596 (Lam "N" λxN (Src 60473795936900 (App (Src 60473796985460 xN) (Src 60473799082627 (App (Src 60473800131198 (Book.Kind.ins)) (Src 60473809568386 xval))))))))))) λxins (Src 60473817957679 (Let "ref" (Src 60473828442818 (Lam "nam" λxnam (Src 60473834734274 (Lam "val" λxval (Src 60473848365762 (Lam "Y" λxY (Src 60473852560066 (Lam "N" λxN (Src 60473856754370 (App (Src 60473857802926 xN) (Src 60473859900097 (App (App (Src 60473860948664 (Book.Kind.ref)) (Src 60473870385852 xnam)) (Src 60473874580160 xval))))))))))))) λxref (Src 60473882969391 (Let "def" (Src 60473893454597 (Lam "nam" λxnam (Src 60473899746053 (Lam "val" λxval (Src 60473906037509 (Lam "bod" λxbod (Src 60473914426117 (Lam "Y" λxY (Src 60473918620421 (Lam "N" λxN (Src 60473922814725 (App (Src 60473923863277 xN) (Src 60473925960452 (App (App (App (Src 60473927009015 (Book.Kind.def)) (Src 60473936446203 xnam)) (Src 60473940640511 xval)) (Src 60473944834819 xbod))))))))))))))) λxdef (Src 60473953223983 (Let "set" (Src 60473981535031 (Lam "Y" λxY (Src 60473985729335 (Lam "N" λxN (Src 60473989923639 (App (Src 60473990972205 xN) (Src 60473993069366 (Book.Kind.set)))))))) λxset (Src 60474005652783 (Let "u60" (Src 60474033963881 (Lam "Y" λxY (Src 60474038158185 (Lam "N" λxN (Src 60474042352489 (App (Src 60474043401055 xN) (Src 60474045498216 (Book.Kind.u60)))))))) λxu60 (Src 60474058081583 (Let "num" (Src 60474068566946 (Lam "val" λxval (Src 60474087441314 (Lam "Y" λxY (Src 60474091635618 (Lam "N" λxN (Src 60474095829922 (App (Src 60474096878482 xN) (Src 60474098975649 (App (Src 60474100024220 (Book.Kind.num)) (Src 60474109461408 xval))))))))))) λxnum (Src 60474117850415 (Let "op2" (Src 60474128335845 (Lam "opr" λxopr (Src 60474134627301 (Lam "fst" λxfst (Src 60474140918757 (Lam "snd" λxsnd (Src 60474149307365 (Lam "Y" λxY (Src 60474153501669 (Lam "N" λxN (Src 60474157695973 (App (Src 60474158744525 xN) (Src 60474160841700 (App (App (App (Src 60474161890263 (Book.Kind.op2)) (Src 60474171327451 xopr)) (Src 60474175521759 xfst)) (Src 60474179716067 xsnd))))))))))))))) λxop2 (Src 60474188105007 (Let "mat" (Src 60474198590506 (Lam "nam" λxnam (Src 60474204881962 (Lam "x" λxx (Src 60474209076266 (Lam "z" λxz (Src 60474213270570 (Lam "s" λxs (Src 60474217464874 (Lam "p" λxp (Src 60474221659178 (Lam "Y" λxY (Src 60474225853482 (Lam "N" λxN (Src 60474230047786 (App (Src 60474231096338 xN) (Src 60474233193513 (App (App (App (App (App (Src 60474234242076 (Book.Kind.mat)) (Src 60474243679264 xnam)) (Src 60474247873570 xx)) (Src 60474249970724 xz)) (Src 60474252067878 xs)) (Src 60474254165032 xp))))))))))))))))))) λxmat (Src 60474260456751 (Let "txt" (Src 60474270942307 (Lam "lit" λxlit (Src 60474289816675 (Lam "Y" λxY (Src 60474294010979 (Lam "N" λxN (Src 60474298205283 (App (Src 60474299253843 xN) (Src 60474301351010 (App (Src 60474302399581 (Book.Kind.txt)) (Src 60474311836769 xlit))))))))))) λxtxt (Src 60474320225583 (Let "hol" (Src 60474330711201 (Lam "nam" λxnam (Src 60474337002657 (Lam "ctx" λxctx (Src 60474350634145 (Lam "Y" λxY (Src 60474354828449 (Lam "N" λxN (Src 60474359022753 (App (Src 60474360071309 xN) (Src 60474362168480 (App (App (Src 60474363217047 (Book.Kind.hol)) (Src 60474372654235 xnam)) (Src 60474376848543 xctx))))))))))))) λxhol (Src 60474385237295 (Let "var" (Src 60474395722975 (Lam "nam" λxnam (Src 60474402014431 (Lam "idx" λxidx (Src 60474415645919 (Lam "Y" λxY (Src 60474419840223 (Lam "N" λxN (Src 60474424034527 (App (Src 60474425083083 xN) (Src 60474427180254 (App (App (Src 60474428228821 (Book.Kind.var)) (Src 60474437666009 xnam)) (Src 60474441860317 xidx))))))))))))) λxvar (Src 60474450249007 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 60474451297512 (Ins (Src 60474452346088 xterm))) (Src 60474457588970 xP)) (Src 60474459686126 xall)) (Src 60474463880434 xlam)) (Src 60474468074742 xapp)) (Src 60474472269050 xann)) (Src 60474476463358 xslf)) (Src 60474480657666 xins)) (Src 60474484851974 xref)) (Src 60474489046282 xdef)) (Src 60474493240590 xset)) (Src 60474497434898 xu60)) (Src 60474501629206 xnum)) (Src 60474505823514 xop2)) (Src 60474510017822 xmat)) (Src 60474514212130 xtxt)) (Src 60474518406438 xhol)) (Src 60474522600746 xvar)) (Src 60474526795052 xY)) (Src 60474528892206 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 60473154207893 (All "term" (Src 60473164693537 (Book.Kind.Term)) λxterm (Src 60473178325141 (All "P" (Src 60473185665069 (Set)) λxP (Src 60473190908053 (All "Y" (Src 60473198248048 (All "nam" (Src 60473207685191 (Book.String)) λxnam (Src 60473216073840 (All "bod" (Src 60473225511021 (All "x" (Src 60473232851042 (Book.Kind.Term)) λxx (Src 60473244385389 (Book.Kind.Term)))) λxbod (Src 60473255919728 xP))))) λxY (Src 60473261162645 (All "N" (Src 60473268502672 (All "val" (Src 60473277939853 (Book.Kind.Term)) λxval (Src 60473289474192 xP))) λxN (Src 60473294717077 xP))))))))))) -Book.Kind.if.mat = (Ref "Kind.if.mat" [] (Ann (Src 85762139751867 (Lam "term" λxterm (Src 85762147091899 (Lam "P" λxP (Src 85762151286203 (Lam "Y" λxY (Src 85762155480507 (Lam "N" λxN (Src 85762161771963 (Let "P" (Src 85762172256679 (Lam "x" λxx (Src 85762176450983 (All "Y" (Src 85762183790982 (All "nam" (Src 85762193228055 (Book.String)) λxnam (Src 85762201616774 (All "x" (Src 85762208956713 (Book.Kind.Term)) λxx (Src 85762220491142 (All "z" (Src 85762227831099 (Book.Kind.Term)) λxz (Src 85762239365510 (All "s" (Src 85762246705503 (All "x" (Src 85762254045524 (Book.Kind.Term)) λxx (Src 85762265579871 (Book.Kind.Term)))) λxs (Src 85762277114246 (All "p" (Src 85762284454275 (All "x" (Src 85762291794296 (Book.Kind.Term)) λxx (Src 85762303328643 (Book.Kind.Term)))) λxp (Src 85762314862982 xP))))))))))) λxY (Src 85762318008743 (All "N" (Src 85762325348772 (All "val" (Src 85762334785953 (Book.Kind.Term)) λxval (Src 85762346320292 xP))) λxN (Src 85762349466023 xP))))))) λxP (Src 85762353661371 (Let "all" (Src 85762364146154 (Lam "nam" λxnam (Src 85762370437610 (Lam "inp" λxinp (Src 85762376729066 (Lam "bod" λxbod (Src 85762385117674 (Lam "Y" λxY (Src 85762389311978 (Lam "N" λxN (Src 85762393506282 (App (Src 85762394554834 xN) (Src 85762396652009 (App (App (App (Src 85762397700572 (Book.Kind.all)) (Src 85762407137760 xnam)) (Src 85762411332068 xinp)) (Src 85762415526376 xbod))))))))))))))) λxall (Src 85762423915963 (Let "lam" (Src 85762434400808 (Lam "nam" λxnam (Src 85762440692264 (Lam "bod" λxbod (Src 85762454323752 (Lam "Y" λxY (Src 85762458518056 (Lam "N" λxN (Src 85762462712360 (App (Src 85762463760916 xN) (Src 85762465858087 (App (App (Src 85762466906654 (Book.Kind.lam)) (Src 85762476343842 xnam)) (Src 85762480538150 xbod))))))))))))) λxlam (Src 85762488927675 (Let "app" (Src 85762499412582 (Lam "fun" λxfun (Src 85762505704038 (Lam "arg" λxarg (Src 85762519335526 (Lam "Y" λxY (Src 85762523529830 (Lam "N" λxN (Src 85762527724134 (App (Src 85762528772690 xN) (Src 85762530869861 (App (App (Src 85762531918428 (Book.Kind.app)) (Src 85762541355616 xfun)) (Src 85762545549924 xarg))))))))))))) λxapp (Src 85762553939387 (Let "ann" (Src 85762564424356 (Lam "val" λxval (Src 85762570715812 (Lam "typ" λxtyp (Src 85762584347300 (Lam "Y" λxY (Src 85762588541604 (Lam "N" λxN (Src 85762592735908 (App (Src 85762593784464 xN) (Src 85762595881635 (App (App (Src 85762596930202 (Book.Kind.ann)) (Src 85762606367390 xval)) (Src 85762610561698 xtyp))))))))))))) λxann (Src 85762618951099 (Let "slf" (Src 85762629436130 (Lam "nam" λxnam (Src 85762635727586 (Lam "bod" λxbod (Src 85762649359074 (Lam "Y" λxY (Src 85762653553378 (Lam "N" λxN (Src 85762657747682 (App (Src 85762658796238 xN) (Src 85762660893409 (App (App (Src 85762661941976 (Book.Kind.slf)) (Src 85762671379164 xnam)) (Src 85762675573472 xbod))))))))))))) λxslf (Src 85762683962811 (Let "ins" (Src 85762694447899 (Lam "val" λxval (Src 85762713322267 (Lam "Y" λxY (Src 85762717516571 (Lam "N" λxN (Src 85762721710875 (App (Src 85762722759435 xN) (Src 85762724856602 (App (Src 85762725905173 (Book.Kind.ins)) (Src 85762735342361 xval))))))))))) λxins (Src 85762743731643 (Let "ref" (Src 85762754216793 (Lam "nam" λxnam (Src 85762760508249 (Lam "val" λxval (Src 85762774139737 (Lam "Y" λxY (Src 85762778334041 (Lam "N" λxN (Src 85762782528345 (App (Src 85762783576901 xN) (Src 85762785674072 (App (App (Src 85762786722639 (Book.Kind.ref)) (Src 85762796159827 xnam)) (Src 85762800354135 xval))))))))))))) λxref (Src 85762808743355 (Let "def" (Src 85762819228572 (Lam "nam" λxnam (Src 85762825520028 (Lam "val" λxval (Src 85762831811484 (Lam "bod" λxbod (Src 85762840200092 (Lam "Y" λxY (Src 85762844394396 (Lam "N" λxN (Src 85762848588700 (App (Src 85762849637252 xN) (Src 85762851734427 (App (App (App (Src 85762852782990 (Book.Kind.def)) (Src 85762862220178 xnam)) (Src 85762866414486 xval)) (Src 85762870608794 xbod))))))))))))))) λxdef (Src 85762878997947 (Let "set" (Src 85762907309006 (Lam "Y" λxY (Src 85762911503310 (Lam "N" λxN (Src 85762915697614 (App (Src 85762916746180 xN) (Src 85762918843341 (Book.Kind.set)))))))) λxset (Src 85762931426747 (Let "u60" (Src 85762959737856 (Lam "Y" λxY (Src 85762963932160 (Lam "N" λxN (Src 85762968126464 (App (Src 85762969175030 xN) (Src 85762971272191 (Book.Kind.u60)))))))) λxu60 (Src 85762983855547 (Let "num" (Src 85762994340921 (Lam "val" λxval (Src 85763013215289 (Lam "Y" λxY (Src 85763017409593 (Lam "N" λxN (Src 85763021603897 (App (Src 85763022652457 xN) (Src 85763024749624 (App (Src 85763025798195 (Book.Kind.num)) (Src 85763035235383 xval))))))))))) λxnum (Src 85763043624379 (Let "op2" (Src 85763054109820 (Lam "opr" λxopr (Src 85763060401276 (Lam "fst" λxfst (Src 85763066692732 (Lam "snd" λxsnd (Src 85763075081340 (Lam "Y" λxY (Src 85763079275644 (Lam "N" λxN (Src 85763083469948 (App (Src 85763084518500 xN) (Src 85763086615675 (App (App (App (Src 85763087664238 (Book.Kind.op2)) (Src 85763097101426 xopr)) (Src 85763101295734 xfst)) (Src 85763105490042 xsnd))))))))))))))) λxop2 (Src 85763113878971 (Let "mat" (Src 85763124364470 (Lam "nam" λxnam (Src 85763130655926 (Lam "x" λxx (Src 85763134850230 (Lam "z" λxz (Src 85763139044534 (Lam "s" λxs (Src 85763143238838 (Lam "p" λxp (Src 85763147433142 (Lam "Y" λxY (Src 85763151627446 (Lam "N" λxN (Src 85763155821750 (App (App (App (App (App (Src 85763156870313 xY) (Src 85763158967469 xnam)) (Src 85763163161775 xx)) (Src 85763165258929 xz)) (Src 85763167356083 xs)) (Src 85763169453237 xp))))))))))))))))) λxmat (Src 85763174696379 (Let "txt" (Src 85763185181935 (Lam "lit" λxlit (Src 85763204056303 (Lam "Y" λxY (Src 85763208250607 (Lam "N" λxN (Src 85763212444911 (App (Src 85763213493471 xN) (Src 85763215590638 (App (Src 85763216639209 (Book.Kind.txt)) (Src 85763226076397 xlit))))))))))) λxtxt (Src 85763234465211 (Let "hol" (Src 85763244950829 (Lam "nam" λxnam (Src 85763251242285 (Lam "ctx" λxctx (Src 85763264873773 (Lam "Y" λxY (Src 85763269068077 (Lam "N" λxN (Src 85763273262381 (App (Src 85763274310937 xN) (Src 85763276408108 (App (App (Src 85763277456675 (Book.Kind.hol)) (Src 85763286893863 xnam)) (Src 85763291088171 xctx))))))))))))) λxhol (Src 85763299476923 (Let "var" (Src 85763309962603 (Lam "nam" λxnam (Src 85763316254059 (Lam "idx" λxidx (Src 85763329885547 (Lam "Y" λxY (Src 85763334079851 (Lam "N" λxN (Src 85763338274155 (App (Src 85763339322711 xN) (Src 85763341419882 (App (App (Src 85763342468449 (Book.Kind.var)) (Src 85763351905637 xnam)) (Src 85763356099945 xidx))))))))))))) λxvar (Src 85763364488635 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 85763365537140 (Ins (Src 85763366585716 xterm))) (Src 85763371828598 xP)) (Src 85763373925754 xall)) (Src 85763378120062 xlam)) (Src 85763382314370 xapp)) (Src 85763386508678 xann)) (Src 85763390702986 xslf)) (Src 85763394897294 xins)) (Src 85763399091602 xref)) (Src 85763403285910 xdef)) (Src 85763407480218 xset)) (Src 85763411674526 xu60)) (Src 85763415868834 xnum)) (Src 85763420063142 xop2)) (Src 85763424257450 xmat)) (Src 85763428451758 xtxt)) (Src 85763432646066 xhol)) (Src 85763436840374 xvar)) (Src 85763441034680 xY)) (Src 85763443131834 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 85761921646811 (All "term" (Src 85761932132385 (Book.Kind.Term)) λxterm (Src 85761945764059 (All "P" (Src 85761953103917 (Set)) λxP (Src 85761958346971 (All "Y" (Src 85761965686966 (All "nam" (Src 85761975124039 (Book.String)) λxnam (Src 85761983512758 (All "x" (Src 85761990852697 (Book.Kind.Term)) λxx (Src 85762002387126 (All "z" (Src 85762009727083 (Book.Kind.Term)) λxz (Src 85762021261494 (All "s" (Src 85762028601487 (All "x" (Src 85762035941508 (Book.Kind.Term)) λxx (Src 85762047475855 (Book.Kind.Term)))) λxs (Src 85762059010230 (All "p" (Src 85762066350259 (All "x" (Src 85762073690280 (Book.Kind.Term)) λxx (Src 85762085224627 (Book.Kind.Term)))) λxp (Src 85762096758966 xP))))))))))) λxY (Src 85762102001883 (All "N" (Src 85762109341910 (All "val" (Src 85762118779091 (Book.Kind.Term)) λxval (Src 85762130313430 xP))) λxN (Src 85762135556315 xP))))))))))) -Book.Kind.if.num = (Ref "Kind.if.num" [] (Ann (Src 62672280224991 (Lam "term" λxterm (Src 62672287565023 (Lam "P" λxP (Src 62672291759327 (Lam "Y" λxY (Src 62672295953631 (Lam "N" λxN (Src 62672302245087 (Let "P" (Src 62672312729803 (Lam "x" λxx (Src 62672316924107 (All "Y" (Src 62672324264106 (All "val" (Src 62672333701287 (U60)) λxval (Src 62672339992746 xP))) λxY (Src 62672343138507 (All "N" (Src 62672350478536 (All "val" (Src 62672359915717 (Book.Kind.Term)) λxval (Src 62672371450056 xP))) λxN (Src 62672374595787 xP))))))) λxP (Src 62672378791135 (Let "all" (Src 62672389275918 (Lam "nam" λxnam (Src 62672395567374 (Lam "inp" λxinp (Src 62672401858830 (Lam "bod" λxbod (Src 62672410247438 (Lam "Y" λxY (Src 62672414441742 (Lam "N" λxN (Src 62672418636046 (App (Src 62672419684598 xN) (Src 62672421781773 (App (App (App (Src 62672422830336 (Book.Kind.all)) (Src 62672432267524 xnam)) (Src 62672436461832 xinp)) (Src 62672440656140 xbod))))))))))))))) λxall (Src 62672449045727 (Let "lam" (Src 62672459530572 (Lam "nam" λxnam (Src 62672465822028 (Lam "bod" λxbod (Src 62672479453516 (Lam "Y" λxY (Src 62672483647820 (Lam "N" λxN (Src 62672487842124 (App (Src 62672488890680 xN) (Src 62672490987851 (App (App (Src 62672492036418 (Book.Kind.lam)) (Src 62672501473606 xnam)) (Src 62672505667914 xbod))))))))))))) λxlam (Src 62672514057439 (Let "app" (Src 62672524542346 (Lam "fun" λxfun (Src 62672530833802 (Lam "arg" λxarg (Src 62672544465290 (Lam "Y" λxY (Src 62672548659594 (Lam "N" λxN (Src 62672552853898 (App (Src 62672553902454 xN) (Src 62672555999625 (App (App (Src 62672557048192 (Book.Kind.app)) (Src 62672566485380 xfun)) (Src 62672570679688 xarg))))))))))))) λxapp (Src 62672579069151 (Let "ann" (Src 62672589554120 (Lam "val" λxval (Src 62672595845576 (Lam "typ" λxtyp (Src 62672609477064 (Lam "Y" λxY (Src 62672613671368 (Lam "N" λxN (Src 62672617865672 (App (Src 62672618914228 xN) (Src 62672621011399 (App (App (Src 62672622059966 (Book.Kind.ann)) (Src 62672631497154 xval)) (Src 62672635691462 xtyp))))))))))))) λxann (Src 62672644080863 (Let "slf" (Src 62672654565894 (Lam "nam" λxnam (Src 62672660857350 (Lam "bod" λxbod (Src 62672674488838 (Lam "Y" λxY (Src 62672678683142 (Lam "N" λxN (Src 62672682877446 (App (Src 62672683926002 xN) (Src 62672686023173 (App (App (Src 62672687071740 (Book.Kind.slf)) (Src 62672696508928 xnam)) (Src 62672700703236 xbod))))))))))))) λxslf (Src 62672709092575 (Let "ins" (Src 62672719577663 (Lam "val" λxval (Src 62672738452031 (Lam "Y" λxY (Src 62672742646335 (Lam "N" λxN (Src 62672746840639 (App (Src 62672747889199 xN) (Src 62672749986366 (App (Src 62672751034937 (Book.Kind.ins)) (Src 62672760472125 xval))))))))))) λxins (Src 62672768861407 (Let "ref" (Src 62672779346557 (Lam "nam" λxnam (Src 62672785638013 (Lam "val" λxval (Src 62672799269501 (Lam "Y" λxY (Src 62672803463805 (Lam "N" λxN (Src 62672807658109 (App (Src 62672808706665 xN) (Src 62672810803836 (App (App (Src 62672811852403 (Book.Kind.ref)) (Src 62672821289591 xnam)) (Src 62672825483899 xval))))))))))))) λxref (Src 62672833873119 (Let "def" (Src 62672844358336 (Lam "nam" λxnam (Src 62672850649792 (Lam "val" λxval (Src 62672856941248 (Lam "bod" λxbod (Src 62672865329856 (Lam "Y" λxY (Src 62672869524160 (Lam "N" λxN (Src 62672873718464 (App (Src 62672874767016 xN) (Src 62672876864191 (App (App (App (Src 62672877912754 (Book.Kind.def)) (Src 62672887349942 xnam)) (Src 62672891544250 xval)) (Src 62672895738558 xbod))))))))))))))) λxdef (Src 62672904127711 (Let "set" (Src 62672932438770 (Lam "Y" λxY (Src 62672936633074 (Lam "N" λxN (Src 62672940827378 (App (Src 62672941875944 xN) (Src 62672943973105 (Book.Kind.set)))))))) λxset (Src 62672956556511 (Let "u60" (Src 62672984867620 (Lam "Y" λxY (Src 62672989061924 (Lam "N" λxN (Src 62672993256228 (App (Src 62672994304794 xN) (Src 62672996401955 (Book.Kind.u60)))))))) λxu60 (Src 62673008985311 (Let "num" (Src 62673019470674 (Lam "val" λxval (Src 62673038345042 (Lam "Y" λxY (Src 62673042539346 (Lam "N" λxN (Src 62673046733650 (App (Src 62673047782221 xY) (Src 62673049879377 xval))))))))) λxnum (Src 62673057219807 (Let "op2" (Src 62673067705237 (Lam "opr" λxopr (Src 62673073996693 (Lam "fst" λxfst (Src 62673080288149 (Lam "snd" λxsnd (Src 62673088676757 (Lam "Y" λxY (Src 62673092871061 (Lam "N" λxN (Src 62673097065365 (App (Src 62673098113917 xN) (Src 62673100211092 (App (App (App (Src 62673101259655 (Book.Kind.op2)) (Src 62673110696843 xopr)) (Src 62673114891151 xfst)) (Src 62673119085459 xsnd))))))))))))))) λxop2 (Src 62673127474399 (Let "mat" (Src 62673137959898 (Lam "nam" λxnam (Src 62673144251354 (Lam "x" λxx (Src 62673148445658 (Lam "z" λxz (Src 62673152639962 (Lam "s" λxs (Src 62673156834266 (Lam "p" λxp (Src 62673161028570 (Lam "Y" λxY (Src 62673165222874 (Lam "N" λxN (Src 62673169417178 (App (Src 62673170465730 xN) (Src 62673172562905 (App (App (App (App (App (Src 62673173611468 (Book.Kind.mat)) (Src 62673183048656 xnam)) (Src 62673187242962 xx)) (Src 62673189340116 xz)) (Src 62673191437270 xs)) (Src 62673193534424 xp))))))))))))))))))) λxmat (Src 62673199826143 (Let "txt" (Src 62673210311699 (Lam "lit" λxlit (Src 62673229186067 (Lam "Y" λxY (Src 62673233380371 (Lam "N" λxN (Src 62673237574675 (App (Src 62673238623235 xN) (Src 62673240720402 (App (Src 62673241768973 (Book.Kind.txt)) (Src 62673251206161 xlit))))))))))) λxtxt (Src 62673259594975 (Let "hol" (Src 62673270080593 (Lam "nam" λxnam (Src 62673276372049 (Lam "ctx" λxctx (Src 62673290003537 (Lam "Y" λxY (Src 62673294197841 (Lam "N" λxN (Src 62673298392145 (App (Src 62673299440701 xN) (Src 62673301537872 (App (App (Src 62673302586439 (Book.Kind.hol)) (Src 62673312023627 xnam)) (Src 62673316217935 xctx))))))))))))) λxhol (Src 62673324606687 (Let "var" (Src 62673335092367 (Lam "nam" λxnam (Src 62673341383823 (Lam "idx" λxidx (Src 62673355015311 (Lam "Y" λxY (Src 62673359209615 (Lam "N" λxN (Src 62673363403919 (App (Src 62673364452475 xN) (Src 62673366549646 (App (App (Src 62673367598213 (Book.Kind.var)) (Src 62673377035401 xnam)) (Src 62673381229709 xidx))))))))))))) λxvar (Src 62673389618399 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 62673390666904 (Ins (Src 62673391715480 xterm))) (Src 62673396958362 xP)) (Src 62673399055518 xall)) (Src 62673403249826 xlam)) (Src 62673407444134 xapp)) (Src 62673411638442 xann)) (Src 62673415832750 xslf)) (Src 62673420027058 xins)) (Src 62673424221366 xref)) (Src 62673428415674 xdef)) (Src 62673432609982 xset)) (Src 62673436804290 xu60)) (Src 62673440998598 xnum)) (Src 62673445192906 xop2)) (Src 62673449387214 xmat)) (Src 62673453581522 xtxt)) (Src 62673457775830 xhol)) (Src 62673461970138 xvar)) (Src 62673466164444 xY)) (Src 62673468261598 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 62672177463405 (All "term" (Src 62672187949089 (Book.Kind.Term)) λxterm (Src 62672201580653 (All "P" (Src 62672208920621 (Set)) λxP (Src 62672214163565 (All "Y" (Src 62672221503560 (All "val" (Src 62672230940741 (U60)) λxval (Src 62672237232200 xP))) λxY (Src 62672242475117 (All "N" (Src 62672249815144 (All "val" (Src 62672259252325 (Book.Kind.Term)) λxval (Src 62672270786664 xP))) λxN (Src 62672276029549 xP))))))))))) -Book.Kind.if.op2 = (Ref "Kind.if.op2" [] (Ann (Src 86861583222073 (Lam "term" λxterm (Src 86861590562105 (Lam "P" λxP (Src 86861594756409 (Lam "Y" λxY (Src 86861598950713 (Lam "N" λxN (Src 86861605242169 (Let "P" (Src 86861615726885 (Lam "x" λxx (Src 86861619921189 (All "Y" (Src 86861627261188 (All "opr" (Src 86861636698329 (Book.Kind.Oper)) λxopr (Src 86861648232708 (All "fst" (Src 86861657669869 (Book.Kind.Term)) λxfst (Src 86861669204228 (All "snd" (Src 86861678641409 (Book.Kind.Term)) λxsnd (Src 86861690175748 xP))))))) λxY (Src 86861693321509 (All "N" (Src 86861700661538 (All "val" (Src 86861710098719 (Book.Kind.Term)) λxval (Src 86861721633058 xP))) λxN (Src 86861724778789 xP))))))) λxP (Src 86861728974137 (Let "all" (Src 86861739458920 (Lam "nam" λxnam (Src 86861745750376 (Lam "inp" λxinp (Src 86861752041832 (Lam "bod" λxbod (Src 86861760430440 (Lam "Y" λxY (Src 86861764624744 (Lam "N" λxN (Src 86861768819048 (App (Src 86861769867600 xN) (Src 86861771964775 (App (App (App (Src 86861773013338 (Book.Kind.all)) (Src 86861782450526 xnam)) (Src 86861786644834 xinp)) (Src 86861790839142 xbod))))))))))))))) λxall (Src 86861799228729 (Let "lam" (Src 86861809713574 (Lam "nam" λxnam (Src 86861816005030 (Lam "bod" λxbod (Src 86861829636518 (Lam "Y" λxY (Src 86861833830822 (Lam "N" λxN (Src 86861838025126 (App (Src 86861839073682 xN) (Src 86861841170853 (App (App (Src 86861842219420 (Book.Kind.lam)) (Src 86861851656608 xnam)) (Src 86861855850916 xbod))))))))))))) λxlam (Src 86861864240441 (Let "app" (Src 86861874725348 (Lam "fun" λxfun (Src 86861881016804 (Lam "arg" λxarg (Src 86861894648292 (Lam "Y" λxY (Src 86861898842596 (Lam "N" λxN (Src 86861903036900 (App (Src 86861904085456 xN) (Src 86861906182627 (App (App (Src 86861907231194 (Book.Kind.app)) (Src 86861916668382 xfun)) (Src 86861920862690 xarg))))))))))))) λxapp (Src 86861929252153 (Let "ann" (Src 86861939737122 (Lam "val" λxval (Src 86861946028578 (Lam "typ" λxtyp (Src 86861959660066 (Lam "Y" λxY (Src 86861963854370 (Lam "N" λxN (Src 86861968048674 (App (Src 86861969097230 xN) (Src 86861971194401 (App (App (Src 86861972242968 (Book.Kind.ann)) (Src 86861981680156 xval)) (Src 86861985874464 xtyp))))))))))))) λxann (Src 86861994263865 (Let "slf" (Src 86862004748896 (Lam "nam" λxnam (Src 86862011040352 (Lam "bod" λxbod (Src 86862024671840 (Lam "Y" λxY (Src 86862028866144 (Lam "N" λxN (Src 86862033060448 (App (Src 86862034109004 xN) (Src 86862036206175 (App (App (Src 86862037254742 (Book.Kind.slf)) (Src 86862046691930 xnam)) (Src 86862050886238 xbod))))))))))))) λxslf (Src 86862059275577 (Let "ins" (Src 86862069760665 (Lam "val" λxval (Src 86862088635033 (Lam "Y" λxY (Src 86862092829337 (Lam "N" λxN (Src 86862097023641 (App (Src 86862098072201 xN) (Src 86862100169368 (App (Src 86862101217939 (Book.Kind.ins)) (Src 86862110655127 xval))))))))))) λxins (Src 86862119044409 (Let "ref" (Src 86862129529559 (Lam "nam" λxnam (Src 86862135821015 (Lam "val" λxval (Src 86862149452503 (Lam "Y" λxY (Src 86862153646807 (Lam "N" λxN (Src 86862157841111 (App (Src 86862158889667 xN) (Src 86862160986838 (App (App (Src 86862162035405 (Book.Kind.ref)) (Src 86862171472593 xnam)) (Src 86862175666901 xval))))))))))))) λxref (Src 86862184056121 (Let "def" (Src 86862194541338 (Lam "nam" λxnam (Src 86862200832794 (Lam "val" λxval (Src 86862207124250 (Lam "bod" λxbod (Src 86862215512858 (Lam "Y" λxY (Src 86862219707162 (Lam "N" λxN (Src 86862223901466 (App (Src 86862224950018 xN) (Src 86862227047193 (App (App (App (Src 86862228095756 (Book.Kind.def)) (Src 86862237532944 xnam)) (Src 86862241727252 xval)) (Src 86862245921560 xbod))))))))))))))) λxdef (Src 86862254310713 (Let "set" (Src 86862282621772 (Lam "Y" λxY (Src 86862286816076 (Lam "N" λxN (Src 86862291010380 (App (Src 86862292058946 xN) (Src 86862294156107 (Book.Kind.set)))))))) λxset (Src 86862306739513 (Let "u60" (Src 86862335050622 (Lam "Y" λxY (Src 86862339244926 (Lam "N" λxN (Src 86862343439230 (App (Src 86862344487796 xN) (Src 86862346584957 (Book.Kind.u60)))))))) λxu60 (Src 86862359168313 (Let "num" (Src 86862369653687 (Lam "val" λxval (Src 86862388528055 (Lam "Y" λxY (Src 86862392722359 (Lam "N" λxN (Src 86862396916663 (App (Src 86862397965223 xN) (Src 86862400062390 (App (Src 86862401110961 (Book.Kind.num)) (Src 86862410548149 xval))))))))))) λxnum (Src 86862418937145 (Let "op2" (Src 86862429422575 (Lam "opr" λxopr (Src 86862435714031 (Lam "fst" λxfst (Src 86862442005487 (Lam "snd" λxsnd (Src 86862450394095 (Lam "Y" λxY (Src 86862454588399 (Lam "N" λxN (Src 86862458782703 (App (App (App (Src 86862459831266 xY) (Src 86862461928422 xopr)) (Src 86862466122730 xfst)) (Src 86862470317038 xsnd))))))))))))) λxop2 (Src 86862477657401 (Let "mat" (Src 86862488142900 (Lam "nam" λxnam (Src 86862494434356 (Lam "x" λxx (Src 86862498628660 (Lam "z" λxz (Src 86862502822964 (Lam "s" λxs (Src 86862507017268 (Lam "p" λxp (Src 86862511211572 (Lam "Y" λxY (Src 86862515405876 (Lam "N" λxN (Src 86862519600180 (App (Src 86862520648732 xN) (Src 86862522745907 (App (App (App (App (App (Src 86862523794470 (Book.Kind.mat)) (Src 86862533231658 xnam)) (Src 86862537425964 xx)) (Src 86862539523118 xz)) (Src 86862541620272 xs)) (Src 86862543717426 xp))))))))))))))))))) λxmat (Src 86862550009145 (Let "txt" (Src 86862560494701 (Lam "lit" λxlit (Src 86862579369069 (Lam "Y" λxY (Src 86862583563373 (Lam "N" λxN (Src 86862587757677 (App (Src 86862588806237 xN) (Src 86862590903404 (App (Src 86862591951975 (Book.Kind.txt)) (Src 86862601389163 xlit))))))))))) λxtxt (Src 86862609777977 (Let "hol" (Src 86862620263595 (Lam "nam" λxnam (Src 86862626555051 (Lam "ctx" λxctx (Src 86862640186539 (Lam "Y" λxY (Src 86862644380843 (Lam "N" λxN (Src 86862648575147 (App (Src 86862649623703 xN) (Src 86862651720874 (App (App (Src 86862652769441 (Book.Kind.hol)) (Src 86862662206629 xnam)) (Src 86862666400937 xctx))))))))))))) λxhol (Src 86862674789689 (Let "var" (Src 86862685275369 (Lam "nam" λxnam (Src 86862691566825 (Lam "idx" λxidx (Src 86862705198313 (Lam "Y" λxY (Src 86862709392617 (Lam "N" λxN (Src 86862713586921 (App (Src 86862714635477 xN) (Src 86862716732648 (App (App (Src 86862717781215 (Book.Kind.var)) (Src 86862727218403 xnam)) (Src 86862731412711 xidx))))))))))))) λxvar (Src 86862739801401 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 86862740849906 (Ins (Src 86862741898482 xterm))) (Src 86862747141364 xP)) (Src 86862749238520 xall)) (Src 86862753432828 xlam)) (Src 86862757627136 xapp)) (Src 86862761821444 xann)) (Src 86862766015752 xslf)) (Src 86862770210060 xins)) (Src 86862774404368 xref)) (Src 86862778598676 xdef)) (Src 86862782792984 xset)) (Src 86862786987292 xu60)) (Src 86862791181600 xnum)) (Src 86862795375908 xop2)) (Src 86862799570216 xmat)) (Src 86862803764524 xtxt)) (Src 86862807958832 xhol)) (Src 86862812153140 xvar)) (Src 86862816347446 xY)) (Src 86862818444600 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 86861433274522 (All "term" (Src 86861443760161 (Book.Kind.Term)) λxterm (Src 86861457391770 (All "P" (Src 86861464731693 (Set)) λxP (Src 86861469974682 (All "Y" (Src 86861477314677 (All "opr" (Src 86861486751818 (Book.Kind.Oper)) λxopr (Src 86861498286197 (All "fst" (Src 86861507723358 (Book.Kind.Term)) λxfst (Src 86861519257717 (All "snd" (Src 86861528694898 (Book.Kind.Term)) λxsnd (Src 86861540229237 xP))))))) λxY (Src 86861545472154 (All "N" (Src 86861552812181 (All "val" (Src 86861562249362 (Book.Kind.Term)) λxval (Src 86861573783701 xP))) λxN (Src 86861579026586 xP))))))))))) -Book.Kind.if.ref = (Ref "Kind.if.ref" [] (Ann (Src 87961070732555 (Lam "term" λxterm (Src 87961078072587 (Lam "P" λxP (Src 87961082266891 (Lam "Y" λxY (Src 87961086461195 (Lam "N" λxN (Src 87961092752651 (Let "P" (Src 87961103237367 (Lam "x" λxx (Src 87961107431671 (All "Y" (Src 87961114771670 (All "nam" (Src 87961124208831 (Book.String)) λxnam (Src 87961132597462 (All "val" (Src 87961142034643 (Book.Kind.Term)) λxval (Src 87961153568982 xP))))) λxY (Src 87961156714743 (All "N" (Src 87961164054772 (All "val" (Src 87961173491953 (Book.Kind.Term)) λxval (Src 87961185026292 xP))) λxN (Src 87961188172023 xP))))))) λxP (Src 87961192367371 (Let "all" (Src 87961202852154 (Lam "nam" λxnam (Src 87961209143610 (Lam "inp" λxinp (Src 87961215435066 (Lam "bod" λxbod (Src 87961223823674 (Lam "Y" λxY (Src 87961228017978 (Lam "N" λxN (Src 87961232212282 (App (Src 87961233260834 xN) (Src 87961235358009 (App (App (App (Src 87961236406572 (Book.Kind.all)) (Src 87961245843760 xnam)) (Src 87961250038068 xinp)) (Src 87961254232376 xbod))))))))))))))) λxall (Src 87961262621963 (Let "lam" (Src 87961273106808 (Lam "nam" λxnam (Src 87961279398264 (Lam "bod" λxbod (Src 87961293029752 (Lam "Y" λxY (Src 87961297224056 (Lam "N" λxN (Src 87961301418360 (App (Src 87961302466916 xN) (Src 87961304564087 (App (App (Src 87961305612654 (Book.Kind.lam)) (Src 87961315049842 xnam)) (Src 87961319244150 xbod))))))))))))) λxlam (Src 87961327633675 (Let "app" (Src 87961338118582 (Lam "fun" λxfun (Src 87961344410038 (Lam "arg" λxarg (Src 87961358041526 (Lam "Y" λxY (Src 87961362235830 (Lam "N" λxN (Src 87961366430134 (App (Src 87961367478690 xN) (Src 87961369575861 (App (App (Src 87961370624428 (Book.Kind.app)) (Src 87961380061616 xfun)) (Src 87961384255924 xarg))))))))))))) λxapp (Src 87961392645387 (Let "ann" (Src 87961403130356 (Lam "val" λxval (Src 87961409421812 (Lam "typ" λxtyp (Src 87961423053300 (Lam "Y" λxY (Src 87961427247604 (Lam "N" λxN (Src 87961431441908 (App (Src 87961432490464 xN) (Src 87961434587635 (App (App (Src 87961435636202 (Book.Kind.ann)) (Src 87961445073390 xval)) (Src 87961449267698 xtyp))))))))))))) λxann (Src 87961457657099 (Let "slf" (Src 87961468142130 (Lam "nam" λxnam (Src 87961474433586 (Lam "bod" λxbod (Src 87961488065074 (Lam "Y" λxY (Src 87961492259378 (Lam "N" λxN (Src 87961496453682 (App (Src 87961497502238 xN) (Src 87961499599409 (App (App (Src 87961500647976 (Book.Kind.slf)) (Src 87961510085164 xnam)) (Src 87961514279472 xbod))))))))))))) λxslf (Src 87961522668811 (Let "ins" (Src 87961533153899 (Lam "val" λxval (Src 87961552028267 (Lam "Y" λxY (Src 87961556222571 (Lam "N" λxN (Src 87961560416875 (App (Src 87961561465435 xN) (Src 87961563562602 (App (Src 87961564611173 (Book.Kind.ins)) (Src 87961574048361 xval))))))))))) λxins (Src 87961582437643 (Let "ref" (Src 87961592922782 (Lam "nam" λxnam (Src 87961599214238 (Lam "val" λxval (Src 87961612845726 (Lam "Y" λxY (Src 87961617040030 (Lam "N" λxN (Src 87961621234334 (App (App (Src 87961622282901 xY) (Src 87961624380057 xnam)) (Src 87961628574365 xval))))))))))) λxref (Src 87961635915019 (Let "def" (Src 87961646400225 (Lam "nam" λxnam (Src 87961652691681 (Lam "val" λxval (Src 87961658983137 (Lam "bod" λxbod (Src 87961667371745 (Lam "Y" λxY (Src 87961671566049 (Lam "N" λxN (Src 87961675760353 (App (Src 87961676808905 xN) (Src 87961678906080 (App (App (App (Src 87961679954643 (Book.Kind.def)) (Src 87961689391831 xnam)) (Src 87961693586139 xval)) (Src 87961697780447 xbod))))))))))))))) λxdef (Src 87961706169611 (Let "set" (Src 87961734480659 (Lam "Y" λxY (Src 87961738674963 (Lam "N" λxN (Src 87961742869267 (App (Src 87961743917833 xN) (Src 87961746014994 (Book.Kind.set)))))))) λxset (Src 87961758598411 (Let "u60" (Src 87961786909509 (Lam "Y" λxY (Src 87961791103813 (Lam "N" λxN (Src 87961795298117 (App (Src 87961796346683 xN) (Src 87961798443844 (Book.Kind.u60)))))))) λxu60 (Src 87961811027211 (Let "num" (Src 87961821512574 (Lam "val" λxval (Src 87961840386942 (Lam "Y" λxY (Src 87961844581246 (Lam "N" λxN (Src 87961848775550 (App (Src 87961849824110 xN) (Src 87961851921277 (App (Src 87961852969848 (Book.Kind.num)) (Src 87961862407036 xval))))))))))) λxnum (Src 87961870796043 (Let "op2" (Src 87961881281473 (Lam "opr" λxopr (Src 87961887572929 (Lam "fst" λxfst (Src 87961893864385 (Lam "snd" λxsnd (Src 87961902252993 (Lam "Y" λxY (Src 87961906447297 (Lam "N" λxN (Src 87961910641601 (App (Src 87961911690153 xN) (Src 87961913787328 (App (App (App (Src 87961914835891 (Book.Kind.op2)) (Src 87961924273079 xopr)) (Src 87961928467387 xfst)) (Src 87961932661695 xsnd))))))))))))))) λxop2 (Src 87961941050635 (Let "mat" (Src 87961951536134 (Lam "nam" λxnam (Src 87961957827590 (Lam "x" λxx (Src 87961962021894 (Lam "z" λxz (Src 87961966216198 (Lam "s" λxs (Src 87961970410502 (Lam "p" λxp (Src 87961974604806 (Lam "Y" λxY (Src 87961978799110 (Lam "N" λxN (Src 87961982993414 (App (Src 87961984041966 xN) (Src 87961986139141 (App (App (App (App (App (Src 87961987187704 (Book.Kind.mat)) (Src 87961996624892 xnam)) (Src 87962000819198 xx)) (Src 87962002916352 xz)) (Src 87962005013506 xs)) (Src 87962007110660 xp))))))))))))))))))) λxmat (Src 87962013402379 (Let "txt" (Src 87962023887935 (Lam "lit" λxlit (Src 87962042762303 (Lam "Y" λxY (Src 87962046956607 (Lam "N" λxN (Src 87962051150911 (App (Src 87962052199471 xN) (Src 87962054296638 (App (Src 87962055345209 (Book.Kind.txt)) (Src 87962064782397 xlit))))))))))) λxtxt (Src 87962073171211 (Let "hol" (Src 87962083656829 (Lam "nam" λxnam (Src 87962089948285 (Lam "ctx" λxctx (Src 87962103579773 (Lam "Y" λxY (Src 87962107774077 (Lam "N" λxN (Src 87962111968381 (App (Src 87962113016937 xN) (Src 87962115114108 (App (App (Src 87962116162675 (Book.Kind.hol)) (Src 87962125599863 xnam)) (Src 87962129794171 xctx))))))))))))) λxhol (Src 87962138182923 (Let "var" (Src 87962148668603 (Lam "nam" λxnam (Src 87962154960059 (Lam "idx" λxidx (Src 87962168591547 (Lam "Y" λxY (Src 87962172785851 (Lam "N" λxN (Src 87962176980155 (App (Src 87962178028711 xN) (Src 87962180125882 (App (App (Src 87962181174449 (Book.Kind.var)) (Src 87962190611637 xnam)) (Src 87962194805945 xidx))))))))))))) λxvar (Src 87962203194635 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 87962204243140 (Ins (Src 87962205291716 xterm))) (Src 87962210534598 xP)) (Src 87962212631754 xall)) (Src 87962216826062 xlam)) (Src 87962221020370 xapp)) (Src 87962225214678 xann)) (Src 87962229408986 xslf)) (Src 87962233603294 xins)) (Src 87962237797602 xref)) (Src 87962241991910 xdef)) (Src 87962246186218 xset)) (Src 87962250380526 xu60)) (Src 87962254574834 xnum)) (Src 87962258769142 xop2)) (Src 87962262963450 xmat)) (Src 87962267157758 xtxt)) (Src 87962271352066 xhol)) (Src 87962275546374 xvar)) (Src 87962279740680 xY)) (Src 87962281837834 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 87960944902275 (All "term" (Src 87960955387937 (Book.Kind.Term)) λxterm (Src 87960969019523 (All "P" (Src 87960976359469 (Set)) λxP (Src 87960981602435 (All "Y" (Src 87960988942430 (All "nam" (Src 87960998379591 (Book.String)) λxnam (Src 87961006768222 (All "val" (Src 87961016205403 (Book.Kind.Term)) λxval (Src 87961027739742 xP))))) λxY (Src 87961032982659 (All "N" (Src 87961040322686 (All "val" (Src 87961049759867 (Book.Kind.Term)) λxval (Src 87961061294206 xP))) λxN (Src 87961066537091 xP))))))))))) -Book.Kind.if.set = (Ref "Kind.if.set" [] (Ann (Src 89060543562947 (Lam "term" λxterm (Src 89060550902979 (Lam "P" λxP (Src 89060555097283 (Lam "Y" λxY (Src 89060559291587 (Lam "N" λxN (Src 89060565583043 (Let "P" (Src 89060576067757 (Lam "x" λxx (Src 89060580262061 (All "Y" (Src 89060587602060 xP) λxY (Src 89060590747821 (All "N" (Src 89060598087850 (All "val" (Src 89060607525031 (Book.Kind.Term)) λxval (Src 89060619059370 xP))) λxN (Src 89060622205101 xP))))))) λxP (Src 89060626400451 (Let "all" (Src 89060636885232 (Lam "nam" λxnam (Src 89060643176688 (Lam "inp" λxinp (Src 89060649468144 (Lam "bod" λxbod (Src 89060657856752 (Lam "Y" λxY (Src 89060662051056 (Lam "N" λxN (Src 89060666245360 (App (Src 89060667293912 xN) (Src 89060669391087 (App (App (App (Src 89060670439650 (Book.Kind.all)) (Src 89060679876838 xnam)) (Src 89060684071146 xinp)) (Src 89060688265454 xbod))))))))))))))) λxall (Src 89060696655043 (Let "lam" (Src 89060707139886 (Lam "nam" λxnam (Src 89060713431342 (Lam "bod" λxbod (Src 89060727062830 (Lam "Y" λxY (Src 89060731257134 (Lam "N" λxN (Src 89060735451438 (App (Src 89060736499994 xN) (Src 89060738597165 (App (App (Src 89060739645732 (Book.Kind.lam)) (Src 89060749082920 xnam)) (Src 89060753277228 xbod))))))))))))) λxlam (Src 89060761666755 (Let "app" (Src 89060772151660 (Lam "fun" λxfun (Src 89060778443116 (Lam "arg" λxarg (Src 89060792074604 (Lam "Y" λxY (Src 89060796268908 (Lam "N" λxN (Src 89060800463212 (App (Src 89060801511768 xN) (Src 89060803608939 (App (App (Src 89060804657506 (Book.Kind.app)) (Src 89060814094694 xfun)) (Src 89060818289002 xarg))))))))))))) λxapp (Src 89060826678467 (Let "ann" (Src 89060837163434 (Lam "val" λxval (Src 89060843454890 (Lam "typ" λxtyp (Src 89060857086378 (Lam "Y" λxY (Src 89060861280682 (Lam "N" λxN (Src 89060865474986 (App (Src 89060866523542 xN) (Src 89060868620713 (App (App (Src 89060869669280 (Book.Kind.ann)) (Src 89060879106468 xval)) (Src 89060883300776 xtyp))))))))))))) λxann (Src 89060891690179 (Let "slf" (Src 89060902175208 (Lam "nam" λxnam (Src 89060908466664 (Lam "bod" λxbod (Src 89060922098152 (Lam "Y" λxY (Src 89060926292456 (Lam "N" λxN (Src 89060930486760 (App (Src 89060931535316 xN) (Src 89060933632487 (App (App (Src 89060934681054 (Book.Kind.slf)) (Src 89060944118242 xnam)) (Src 89060948312550 xbod))))))))))))) λxslf (Src 89060956701891 (Let "ins" (Src 89060967186977 (Lam "val" λxval (Src 89060986061345 (Lam "Y" λxY (Src 89060990255649 (Lam "N" λxN (Src 89060994449953 (App (Src 89060995498513 xN) (Src 89060997595680 (App (Src 89060998644251 (Book.Kind.ins)) (Src 89061008081439 xval))))))))))) λxins (Src 89061016470723 (Let "ref" (Src 89061026955871 (Lam "nam" λxnam (Src 89061033247327 (Lam "val" λxval (Src 89061046878815 (Lam "Y" λxY (Src 89061051073119 (Lam "N" λxN (Src 89061055267423 (App (Src 89061056315979 xN) (Src 89061058413150 (App (App (Src 89061059461717 (Book.Kind.ref)) (Src 89061068898905 xnam)) (Src 89061073093213 xval))))))))))))) λxref (Src 89061081482435 (Let "def" (Src 89061091967650 (Lam "nam" λxnam (Src 89061098259106 (Lam "val" λxval (Src 89061104550562 (Lam "bod" λxbod (Src 89061112939170 (Lam "Y" λxY (Src 89061117133474 (Lam "N" λxN (Src 89061121327778 (App (Src 89061122376330 xN) (Src 89061124473505 (App (App (App (Src 89061125522068 (Book.Kind.def)) (Src 89061134959256 xnam)) (Src 89061139153564 xval)) (Src 89061143347872 xbod))))))))))))))) λxdef (Src 89061151737027 (Let "set" (Src 89061180048075 (Lam "Y" λxY (Src 89061184242379 (Lam "N" λxN (Src 89061188436683 (Src 89061189485258 xY)))))) λxset (Src 89061194728643 (Let "u60" (Src 89061223039741 (Lam "Y" λxY (Src 89061227234045 (Lam "N" λxN (Src 89061231428349 (App (Src 89061232476915 xN) (Src 89061234574076 (Book.Kind.u60)))))))) λxu60 (Src 89061247157443 (Let "num" (Src 89061257642806 (Lam "val" λxval (Src 89061276517174 (Lam "Y" λxY (Src 89061280711478 (Lam "N" λxN (Src 89061284905782 (App (Src 89061285954342 xN) (Src 89061288051509 (App (Src 89061289100080 (Book.Kind.num)) (Src 89061298537268 xval))))))))))) λxnum (Src 89061306926275 (Let "op2" (Src 89061317411705 (Lam "opr" λxopr (Src 89061323703161 (Lam "fst" λxfst (Src 89061329994617 (Lam "snd" λxsnd (Src 89061338383225 (Lam "Y" λxY (Src 89061342577529 (Lam "N" λxN (Src 89061346771833 (App (Src 89061347820385 xN) (Src 89061349917560 (App (App (App (Src 89061350966123 (Book.Kind.op2)) (Src 89061360403311 xopr)) (Src 89061364597619 xfst)) (Src 89061368791927 xsnd))))))))))))))) λxop2 (Src 89061377180867 (Let "mat" (Src 89061387666366 (Lam "nam" λxnam (Src 89061393957822 (Lam "x" λxx (Src 89061398152126 (Lam "z" λxz (Src 89061402346430 (Lam "s" λxs (Src 89061406540734 (Lam "p" λxp (Src 89061410735038 (Lam "Y" λxY (Src 89061414929342 (Lam "N" λxN (Src 89061419123646 (App (Src 89061420172198 xN) (Src 89061422269373 (App (App (App (App (App (Src 89061423317936 (Book.Kind.mat)) (Src 89061432755124 xnam)) (Src 89061436949430 xx)) (Src 89061439046584 xz)) (Src 89061441143738 xs)) (Src 89061443240892 xp))))))))))))))))))) λxmat (Src 89061449532611 (Let "txt" (Src 89061460018167 (Lam "lit" λxlit (Src 89061478892535 (Lam "Y" λxY (Src 89061483086839 (Lam "N" λxN (Src 89061487281143 (App (Src 89061488329703 xN) (Src 89061490426870 (App (Src 89061491475441 (Book.Kind.txt)) (Src 89061500912629 xlit))))))))))) λxtxt (Src 89061509301443 (Let "hol" (Src 89061519787061 (Lam "nam" λxnam (Src 89061526078517 (Lam "ctx" λxctx (Src 89061539710005 (Lam "Y" λxY (Src 89061543904309 (Lam "N" λxN (Src 89061548098613 (App (Src 89061549147169 xN) (Src 89061551244340 (App (App (Src 89061552292907 (Book.Kind.hol)) (Src 89061561730095 xnam)) (Src 89061565924403 xctx))))))))))))) λxhol (Src 89061574313155 (Let "var" (Src 89061584798835 (Lam "nam" λxnam (Src 89061591090291 (Lam "idx" λxidx (Src 89061604721779 (Lam "Y" λxY (Src 89061608916083 (Lam "N" λxN (Src 89061613110387 (App (Src 89061614158943 xN) (Src 89061616256114 (App (App (Src 89061617304681 (Book.Kind.var)) (Src 89061626741869 xnam)) (Src 89061630936177 xidx))))))))))))) λxvar (Src 89061639324867 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 89061640373372 (Ins (Src 89061641421948 xterm))) (Src 89061646664830 xP)) (Src 89061648761986 xall)) (Src 89061652956294 xlam)) (Src 89061657150602 xapp)) (Src 89061661344910 xann)) (Src 89061665539218 xslf)) (Src 89061669733526 xins)) (Src 89061673927834 xref)) (Src 89061678122142 xdef)) (Src 89061682316450 xset)) (Src 89061686510758 xu60)) (Src 89061690705066 xnum)) (Src 89061694899374 xop2)) (Src 89061699093682 xmat)) (Src 89061703287990 xtxt)) (Src 89061707482298 xhol)) (Src 89061711676606 xvar)) (Src 89061715870912 xY)) (Src 89061717968066 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 89060456530014 (All "term" (Src 89060467015713 (Book.Kind.Term)) λxterm (Src 89060480647262 (All "P" (Src 89060487987245 (Set)) λxP (Src 89060493230174 (All "Y" (Src 89060500570169 xP) λxY (Src 89060505813086 (All "N" (Src 89060513153113 (All "val" (Src 89060522590294 (Book.Kind.Term)) λxval (Src 89060534124633 xP))) λxN (Src 89060539367518 xP))))))))))) -Book.Kind.if.slf = (Ref "Kind.if.slf" [] (Ann (Src 54975740773679 (Lam "term" λxterm (Src 54975748113711 (Lam "P" λxP (Src 54975752308015 (Lam "Y" λxY (Src 54975756502319 (Lam "N" λxN (Src 54975762793775 (Let "P" (Src 54975773278491 (Lam "x" λxx (Src 54975777472795 (All "Y" (Src 54975784812794 (All "nam" (Src 54975794249937 (Book.String)) λxnam (Src 54975802638586 (All "bod" (Src 54975812075767 (All "x" (Src 54975819415788 (Book.Kind.Term)) λxx (Src 54975830950135 (Book.Kind.Term)))) λxbod (Src 54975842484474 xP))))) λxY (Src 54975845630235 (All "N" (Src 54975852970264 (All "val" (Src 54975862407445 (Book.Kind.Term)) λxval (Src 54975873941784 xP))) λxN (Src 54975877087515 xP))))))) λxP (Src 54975881282863 (Let "all" (Src 54975891767646 (Lam "nam" λxnam (Src 54975898059102 (Lam "inp" λxinp (Src 54975904350558 (Lam "bod" λxbod (Src 54975912739166 (Lam "Y" λxY (Src 54975916933470 (Lam "N" λxN (Src 54975921127774 (App (Src 54975922176326 xN) (Src 54975924273501 (App (App (App (Src 54975925322064 (Book.Kind.all)) (Src 54975934759252 xnam)) (Src 54975938953560 xinp)) (Src 54975943147868 xbod))))))))))))))) λxall (Src 54975951537455 (Let "lam" (Src 54975962022300 (Lam "nam" λxnam (Src 54975968313756 (Lam "bod" λxbod (Src 54975981945244 (Lam "Y" λxY (Src 54975986139548 (Lam "N" λxN (Src 54975990333852 (App (Src 54975991382408 xN) (Src 54975993479579 (App (App (Src 54975994528146 (Book.Kind.lam)) (Src 54976003965334 xnam)) (Src 54976008159642 xbod))))))))))))) λxlam (Src 54976016549167 (Let "app" (Src 54976027034074 (Lam "fun" λxfun (Src 54976033325530 (Lam "arg" λxarg (Src 54976046957018 (Lam "Y" λxY (Src 54976051151322 (Lam "N" λxN (Src 54976055345626 (App (Src 54976056394182 xN) (Src 54976058491353 (App (App (Src 54976059539920 (Book.Kind.app)) (Src 54976068977108 xfun)) (Src 54976073171416 xarg))))))))))))) λxapp (Src 54976081560879 (Let "ann" (Src 54976092045848 (Lam "val" λxval (Src 54976098337304 (Lam "typ" λxtyp (Src 54976111968792 (Lam "Y" λxY (Src 54976116163096 (Lam "N" λxN (Src 54976120357400 (App (Src 54976121405956 xN) (Src 54976123503127 (App (App (Src 54976124551694 (Book.Kind.ann)) (Src 54976133988882 xval)) (Src 54976138183190 xtyp))))))))))))) λxann (Src 54976146572591 (Let "slf" (Src 54976157057611 (Lam "nam" λxnam (Src 54976163349067 (Lam "bod" λxbod (Src 54976176980555 (Lam "Y" λxY (Src 54976181174859 (Lam "N" λxN (Src 54976185369163 (App (App (Src 54976186417730 xY) (Src 54976188514886 xnam)) (Src 54976192709194 xbod))))))))))) λxslf (Src 54976200049967 (Let "ins" (Src 54976210535044 (Lam "val" λxval (Src 54976229409412 (Lam "Y" λxY (Src 54976233603716 (Lam "N" λxN (Src 54976237798020 (App (Src 54976238846580 xN) (Src 54976240943747 (App (Src 54976241992318 (Book.Kind.ins)) (Src 54976251429506 xval))))))))))) λxins (Src 54976259818799 (Let "ref" (Src 54976270303938 (Lam "nam" λxnam (Src 54976276595394 (Lam "val" λxval (Src 54976290226882 (Lam "Y" λxY (Src 54976294421186 (Lam "N" λxN (Src 54976298615490 (App (Src 54976299664046 xN) (Src 54976301761217 (App (App (Src 54976302809784 (Book.Kind.ref)) (Src 54976312246972 xnam)) (Src 54976316441280 xval))))))))))))) λxref (Src 54976324830511 (Let "def" (Src 54976335315717 (Lam "nam" λxnam (Src 54976341607173 (Lam "val" λxval (Src 54976347898629 (Lam "bod" λxbod (Src 54976356287237 (Lam "Y" λxY (Src 54976360481541 (Lam "N" λxN (Src 54976364675845 (App (Src 54976365724397 xN) (Src 54976367821572 (App (App (App (Src 54976368870135 (Book.Kind.def)) (Src 54976378307323 xnam)) (Src 54976382501631 xval)) (Src 54976386695939 xbod))))))))))))))) λxdef (Src 54976395085103 (Let "set" (Src 54976423396151 (Lam "Y" λxY (Src 54976427590455 (Lam "N" λxN (Src 54976431784759 (App (Src 54976432833325 xN) (Src 54976434930486 (Book.Kind.set)))))))) λxset (Src 54976447513903 (Let "u60" (Src 54976475825001 (Lam "Y" λxY (Src 54976480019305 (Lam "N" λxN (Src 54976484213609 (App (Src 54976485262175 xN) (Src 54976487359336 (Book.Kind.u60)))))))) λxu60 (Src 54976499942703 (Let "num" (Src 54976510428066 (Lam "val" λxval (Src 54976529302434 (Lam "Y" λxY (Src 54976533496738 (Lam "N" λxN (Src 54976537691042 (App (Src 54976538739602 xN) (Src 54976540836769 (App (Src 54976541885340 (Book.Kind.num)) (Src 54976551322528 xval))))))))))) λxnum (Src 54976559711535 (Let "op2" (Src 54976570196965 (Lam "opr" λxopr (Src 54976576488421 (Lam "fst" λxfst (Src 54976582779877 (Lam "snd" λxsnd (Src 54976591168485 (Lam "Y" λxY (Src 54976595362789 (Lam "N" λxN (Src 54976599557093 (App (Src 54976600605645 xN) (Src 54976602702820 (App (App (App (Src 54976603751383 (Book.Kind.op2)) (Src 54976613188571 xopr)) (Src 54976617382879 xfst)) (Src 54976621577187 xsnd))))))))))))))) λxop2 (Src 54976629966127 (Let "mat" (Src 54976640451626 (Lam "nam" λxnam (Src 54976646743082 (Lam "x" λxx (Src 54976650937386 (Lam "z" λxz (Src 54976655131690 (Lam "s" λxs (Src 54976659325994 (Lam "p" λxp (Src 54976663520298 (Lam "Y" λxY (Src 54976667714602 (Lam "N" λxN (Src 54976671908906 (App (Src 54976672957458 xN) (Src 54976675054633 (App (App (App (App (App (Src 54976676103196 (Book.Kind.mat)) (Src 54976685540384 xnam)) (Src 54976689734690 xx)) (Src 54976691831844 xz)) (Src 54976693928998 xs)) (Src 54976696026152 xp))))))))))))))))))) λxmat (Src 54976702317871 (Let "txt" (Src 54976712803427 (Lam "lit" λxlit (Src 54976731677795 (Lam "Y" λxY (Src 54976735872099 (Lam "N" λxN (Src 54976740066403 (App (Src 54976741114963 xN) (Src 54976743212130 (App (Src 54976744260701 (Book.Kind.txt)) (Src 54976753697889 xlit))))))))))) λxtxt (Src 54976762086703 (Let "hol" (Src 54976772572321 (Lam "nam" λxnam (Src 54976778863777 (Lam "ctx" λxctx (Src 54976792495265 (Lam "Y" λxY (Src 54976796689569 (Lam "N" λxN (Src 54976800883873 (App (Src 54976801932429 xN) (Src 54976804029600 (App (App (Src 54976805078167 (Book.Kind.hol)) (Src 54976814515355 xnam)) (Src 54976818709663 xctx))))))))))))) λxhol (Src 54976827098415 (Let "var" (Src 54976837584095 (Lam "nam" λxnam (Src 54976843875551 (Lam "idx" λxidx (Src 54976857507039 (Lam "Y" λxY (Src 54976861701343 (Lam "N" λxN (Src 54976865895647 (App (Src 54976866944203 xN) (Src 54976869041374 (App (App (Src 54976870089941 (Book.Kind.var)) (Src 54976879527129 xnam)) (Src 54976883721437 xidx))))))))))))) λxvar (Src 54976892110127 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 54976893158632 (Ins (Src 54976894207208 xterm))) (Src 54976899450090 xP)) (Src 54976901547246 xall)) (Src 54976905741554 xlam)) (Src 54976909935862 xapp)) (Src 54976914130170 xann)) (Src 54976918324478 xslf)) (Src 54976922518786 xins)) (Src 54976926713094 xref)) (Src 54976930907402 xdef)) (Src 54976935101710 xset)) (Src 54976939296018 xu60)) (Src 54976943490326 xnum)) (Src 54976947684634 xop2)) (Src 54976951878942 xmat)) (Src 54976956073250 xtxt)) (Src 54976960267558 xhol)) (Src 54976964461866 xvar)) (Src 54976968656172 xY)) (Src 54976970753326 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 54975596069013 (All "term" (Src 54975606554657 (Book.Kind.Term)) λxterm (Src 54975620186261 (All "P" (Src 54975627526189 (Set)) λxP (Src 54975632769173 (All "Y" (Src 54975640109168 (All "nam" (Src 54975649546311 (Book.String)) λxnam (Src 54975657934960 (All "bod" (Src 54975667372141 (All "x" (Src 54975674712162 (Book.Kind.Term)) λxx (Src 54975686246509 (Book.Kind.Term)))) λxbod (Src 54975697780848 xP))))) λxY (Src 54975703023765 (All "N" (Src 54975710363792 (All "val" (Src 54975719800973 (Book.Kind.Term)) λxval (Src 54975731335312 xP))) λxN (Src 54975736578197 xP))))))))))) -Book.Kind.if.txt = (Ref "Kind.if.txt" [] (Ann (Src 90160076162281 (Lam "term" λxterm (Src 90160083502313 (Lam "P" λxP (Src 90160087696617 (Lam "Y" λxY (Src 90160091890921 (Lam "N" λxN (Src 90160098182377 (Let "P" (Src 90160108667093 (Lam "x" λxx (Src 90160112861397 (All "Y" (Src 90160120201396 (All "lit" (Src 90160129638577 (Book.Kind.Text)) λxlit (Src 90160141172916 xP))) λxY (Src 90160144318677 (All "N" (Src 90160151658706 (All "val" (Src 90160161095887 (Book.Kind.Term)) λxval (Src 90160172630226 xP))) λxN (Src 90160175775957 xP))))))) λxP (Src 90160179971305 (Let "all" (Src 90160190456088 (Lam "nam" λxnam (Src 90160196747544 (Lam "inp" λxinp (Src 90160203039000 (Lam "bod" λxbod (Src 90160211427608 (Lam "Y" λxY (Src 90160215621912 (Lam "N" λxN (Src 90160219816216 (App (Src 90160220864768 xN) (Src 90160222961943 (App (App (App (Src 90160224010506 (Book.Kind.all)) (Src 90160233447694 xnam)) (Src 90160237642002 xinp)) (Src 90160241836310 xbod))))))))))))))) λxall (Src 90160250225897 (Let "lam" (Src 90160260710742 (Lam "nam" λxnam (Src 90160267002198 (Lam "bod" λxbod (Src 90160280633686 (Lam "Y" λxY (Src 90160284827990 (Lam "N" λxN (Src 90160289022294 (App (Src 90160290070850 xN) (Src 90160292168021 (App (App (Src 90160293216588 (Book.Kind.lam)) (Src 90160302653776 xnam)) (Src 90160306848084 xbod))))))))))))) λxlam (Src 90160315237609 (Let "app" (Src 90160325722516 (Lam "fun" λxfun (Src 90160332013972 (Lam "arg" λxarg (Src 90160345645460 (Lam "Y" λxY (Src 90160349839764 (Lam "N" λxN (Src 90160354034068 (App (Src 90160355082624 xN) (Src 90160357179795 (App (App (Src 90160358228362 (Book.Kind.app)) (Src 90160367665550 xfun)) (Src 90160371859858 xarg))))))))))))) λxapp (Src 90160380249321 (Let "ann" (Src 90160390734290 (Lam "val" λxval (Src 90160397025746 (Lam "typ" λxtyp (Src 90160410657234 (Lam "Y" λxY (Src 90160414851538 (Lam "N" λxN (Src 90160419045842 (App (Src 90160420094398 xN) (Src 90160422191569 (App (App (Src 90160423240136 (Book.Kind.ann)) (Src 90160432677324 xval)) (Src 90160436871632 xtyp))))))))))))) λxann (Src 90160445261033 (Let "slf" (Src 90160455746064 (Lam "nam" λxnam (Src 90160462037520 (Lam "bod" λxbod (Src 90160475669008 (Lam "Y" λxY (Src 90160479863312 (Lam "N" λxN (Src 90160484057616 (App (Src 90160485106172 xN) (Src 90160487203343 (App (App (Src 90160488251910 (Book.Kind.slf)) (Src 90160497689098 xnam)) (Src 90160501883406 xbod))))))))))))) λxslf (Src 90160510272745 (Let "ins" (Src 90160520757833 (Lam "val" λxval (Src 90160539632201 (Lam "Y" λxY (Src 90160543826505 (Lam "N" λxN (Src 90160548020809 (App (Src 90160549069369 xN) (Src 90160551166536 (App (Src 90160552215107 (Book.Kind.ins)) (Src 90160561652295 xval))))))))))) λxins (Src 90160570041577 (Let "ref" (Src 90160580526727 (Lam "nam" λxnam (Src 90160586818183 (Lam "val" λxval (Src 90160600449671 (Lam "Y" λxY (Src 90160604643975 (Lam "N" λxN (Src 90160608838279 (App (Src 90160609886835 xN) (Src 90160611984006 (App (App (Src 90160613032573 (Book.Kind.ref)) (Src 90160622469761 xnam)) (Src 90160626664069 xval))))))))))))) λxref (Src 90160635053289 (Let "def" (Src 90160645538506 (Lam "nam" λxnam (Src 90160651829962 (Lam "val" λxval (Src 90160658121418 (Lam "bod" λxbod (Src 90160666510026 (Lam "Y" λxY (Src 90160670704330 (Lam "N" λxN (Src 90160674898634 (App (Src 90160675947186 xN) (Src 90160678044361 (App (App (App (Src 90160679092924 (Book.Kind.def)) (Src 90160688530112 xnam)) (Src 90160692724420 xval)) (Src 90160696918728 xbod))))))))))))))) λxdef (Src 90160705307881 (Let "set" (Src 90160733618940 (Lam "Y" λxY (Src 90160737813244 (Lam "N" λxN (Src 90160742007548 (App (Src 90160743056114 xN) (Src 90160745153275 (Book.Kind.set)))))))) λxset (Src 90160757736681 (Let "u60" (Src 90160786047790 (Lam "Y" λxY (Src 90160790242094 (Lam "N" λxN (Src 90160794436398 (App (Src 90160795484964 xN) (Src 90160797582125 (Book.Kind.u60)))))))) λxu60 (Src 90160810165481 (Let "num" (Src 90160820650855 (Lam "val" λxval (Src 90160839525223 (Lam "Y" λxY (Src 90160843719527 (Lam "N" λxN (Src 90160847913831 (App (Src 90160848962391 xN) (Src 90160851059558 (App (Src 90160852108129 (Book.Kind.num)) (Src 90160861545317 xval))))))))))) λxnum (Src 90160869934313 (Let "op2" (Src 90160880419754 (Lam "opr" λxopr (Src 90160886711210 (Lam "fst" λxfst (Src 90160893002666 (Lam "snd" λxsnd (Src 90160901391274 (Lam "Y" λxY (Src 90160905585578 (Lam "N" λxN (Src 90160909779882 (App (Src 90160910828434 xN) (Src 90160912925609 (App (App (App (Src 90160913974172 (Book.Kind.op2)) (Src 90160923411360 xopr)) (Src 90160927605668 xfst)) (Src 90160931799976 xsnd))))))))))))))) λxop2 (Src 90160940188905 (Let "mat" (Src 90160950674415 (Lam "nam" λxnam (Src 90160956965871 (Lam "x" λxx (Src 90160961160175 (Lam "z" λxz (Src 90160965354479 (Lam "s" λxs (Src 90160969548783 (Lam "p" λxp (Src 90160973743087 (Lam "Y" λxY (Src 90160977937391 (Lam "N" λxN (Src 90160982131695 (App (Src 90160983180247 xN) (Src 90160985277422 (App (App (App (App (App (Src 90160986325985 (Book.Kind.mat)) (Src 90160995763173 xnam)) (Src 90160999957479 xx)) (Src 90161002054633 xz)) (Src 90161004151787 xs)) (Src 90161006248941 xp))))))))))))))))))) λxmat (Src 90161012540649 (Let "txt" (Src 90161023026205 (Lam "lit" λxlit (Src 90161041900573 (Lam "Y" λxY (Src 90161046094877 (Lam "N" λxN (Src 90161050289181 (App (Src 90161051337752 xY) (Src 90161053434908 xlit))))))))) λxtxt (Src 90161060775145 (Let "hol" (Src 90161071260763 (Lam "nam" λxnam (Src 90161077552219 (Lam "ctx" λxctx (Src 90161091183707 (Lam "Y" λxY (Src 90161095378011 (Lam "N" λxN (Src 90161099572315 (App (Src 90161100620871 xN) (Src 90161102718042 (App (App (Src 90161103766609 (Book.Kind.hol)) (Src 90161113203797 xnam)) (Src 90161117398105 xctx))))))))))))) λxhol (Src 90161125786857 (Let "var" (Src 90161136272537 (Lam "nam" λxnam (Src 90161142563993 (Lam "idx" λxidx (Src 90161156195481 (Lam "Y" λxY (Src 90161160389785 (Lam "N" λxN (Src 90161164584089 (App (Src 90161165632645 xN) (Src 90161167729816 (App (App (Src 90161168778383 (Book.Kind.var)) (Src 90161178215571 xnam)) (Src 90161182409879 xidx))))))))))))) λxvar (Src 90161190798569 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 90161191847074 (Ins (Src 90161192895650 xterm))) (Src 90161198138532 xP)) (Src 90161200235688 xall)) (Src 90161204429996 xlam)) (Src 90161208624304 xapp)) (Src 90161212818612 xann)) (Src 90161217012920 xslf)) (Src 90161221207228 xins)) (Src 90161225401536 xref)) (Src 90161229595844 xdef)) (Src 90161233790152 xset)) (Src 90161237984460 xu60)) (Src 90161242178768 xnum)) (Src 90161246373076 xop2)) (Src 90161250567384 xmat)) (Src 90161254761692 xtxt)) (Src 90161258956000 xhol)) (Src 90161263150308 xvar)) (Src 90161267344614 xY)) (Src 90161269441768 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 90159968157810 (All "term" (Src 90159978643489 (Book.Kind.Term)) λxterm (Src 90159992275058 (All "P" (Src 90159999615021 (Set)) λxP (Src 90160004857970 (All "Y" (Src 90160012197965 (All "lit" (Src 90160021635146 (Book.Kind.Text)) λxlit (Src 90160033169485 xP))) λxY (Src 90160038412402 (All "N" (Src 90160045752429 (All "val" (Src 90160055189610 (Book.Kind.Term)) λxval (Src 90160066723949 xP))) λxN (Src 90160071966834 xP))))))))))) -Book.Kind.if.u60 = (Ref "Kind.if.u60" [] (Ann (Src 91259566818499 (Lam "term" λxterm (Src 91259574158531 (Lam "P" λxP (Src 91259578352835 (Lam "Y" λxY (Src 91259582547139 (Lam "N" λxN (Src 91259588838595 (Let "P" (Src 91259599323309 (Lam "x" λxx (Src 91259603517613 (All "Y" (Src 91259610857612 xP) λxY (Src 91259614003373 (All "N" (Src 91259621343402 (All "val" (Src 91259630780583 (Book.Kind.Term)) λxval (Src 91259642314922 xP))) λxN (Src 91259645460653 xP))))))) λxP (Src 91259649656003 (Let "all" (Src 91259660140784 (Lam "nam" λxnam (Src 91259666432240 (Lam "inp" λxinp (Src 91259672723696 (Lam "bod" λxbod (Src 91259681112304 (Lam "Y" λxY (Src 91259685306608 (Lam "N" λxN (Src 91259689500912 (App (Src 91259690549464 xN) (Src 91259692646639 (App (App (App (Src 91259693695202 (Book.Kind.all)) (Src 91259703132390 xnam)) (Src 91259707326698 xinp)) (Src 91259711521006 xbod))))))))))))))) λxall (Src 91259719910595 (Let "lam" (Src 91259730395438 (Lam "nam" λxnam (Src 91259736686894 (Lam "bod" λxbod (Src 91259750318382 (Lam "Y" λxY (Src 91259754512686 (Lam "N" λxN (Src 91259758706990 (App (Src 91259759755546 xN) (Src 91259761852717 (App (App (Src 91259762901284 (Book.Kind.lam)) (Src 91259772338472 xnam)) (Src 91259776532780 xbod))))))))))))) λxlam (Src 91259784922307 (Let "app" (Src 91259795407212 (Lam "fun" λxfun (Src 91259801698668 (Lam "arg" λxarg (Src 91259815330156 (Lam "Y" λxY (Src 91259819524460 (Lam "N" λxN (Src 91259823718764 (App (Src 91259824767320 xN) (Src 91259826864491 (App (App (Src 91259827913058 (Book.Kind.app)) (Src 91259837350246 xfun)) (Src 91259841544554 xarg))))))))))))) λxapp (Src 91259849934019 (Let "ann" (Src 91259860418986 (Lam "val" λxval (Src 91259866710442 (Lam "typ" λxtyp (Src 91259880341930 (Lam "Y" λxY (Src 91259884536234 (Lam "N" λxN (Src 91259888730538 (App (Src 91259889779094 xN) (Src 91259891876265 (App (App (Src 91259892924832 (Book.Kind.ann)) (Src 91259902362020 xval)) (Src 91259906556328 xtyp))))))))))))) λxann (Src 91259914945731 (Let "slf" (Src 91259925430760 (Lam "nam" λxnam (Src 91259931722216 (Lam "bod" λxbod (Src 91259945353704 (Lam "Y" λxY (Src 91259949548008 (Lam "N" λxN (Src 91259953742312 (App (Src 91259954790868 xN) (Src 91259956888039 (App (App (Src 91259957936606 (Book.Kind.slf)) (Src 91259967373794 xnam)) (Src 91259971568102 xbod))))))))))))) λxslf (Src 91259979957443 (Let "ins" (Src 91259990442529 (Lam "val" λxval (Src 91260009316897 (Lam "Y" λxY (Src 91260013511201 (Lam "N" λxN (Src 91260017705505 (App (Src 91260018754065 xN) (Src 91260020851232 (App (Src 91260021899803 (Book.Kind.ins)) (Src 91260031336991 xval))))))))))) λxins (Src 91260039726275 (Let "ref" (Src 91260050211423 (Lam "nam" λxnam (Src 91260056502879 (Lam "val" λxval (Src 91260070134367 (Lam "Y" λxY (Src 91260074328671 (Lam "N" λxN (Src 91260078522975 (App (Src 91260079571531 xN) (Src 91260081668702 (App (App (Src 91260082717269 (Book.Kind.ref)) (Src 91260092154457 xnam)) (Src 91260096348765 xval))))))))))))) λxref (Src 91260104737987 (Let "def" (Src 91260115223202 (Lam "nam" λxnam (Src 91260121514658 (Lam "val" λxval (Src 91260127806114 (Lam "bod" λxbod (Src 91260136194722 (Lam "Y" λxY (Src 91260140389026 (Lam "N" λxN (Src 91260144583330 (App (Src 91260145631882 xN) (Src 91260147729057 (App (App (App (Src 91260148777620 (Book.Kind.def)) (Src 91260158214808 xnam)) (Src 91260162409116 xval)) (Src 91260166603424 xbod))))))))))))))) λxdef (Src 91260174992579 (Let "set" (Src 91260203303636 (Lam "Y" λxY (Src 91260207497940 (Lam "N" λxN (Src 91260211692244 (App (Src 91260212740810 xN) (Src 91260214837971 (Book.Kind.set)))))))) λxset (Src 91260227421379 (Let "u60" (Src 91260255732477 (Lam "Y" λxY (Src 91260259926781 (Lam "N" λxN (Src 91260264121085 (Src 91260265169660 xY)))))) λxu60 (Src 91260270412995 (Let "num" (Src 91260280898358 (Lam "val" λxval (Src 91260299772726 (Lam "Y" λxY (Src 91260303967030 (Lam "N" λxN (Src 91260308161334 (App (Src 91260309209894 xN) (Src 91260311307061 (App (Src 91260312355632 (Book.Kind.num)) (Src 91260321792820 xval))))))))))) λxnum (Src 91260330181827 (Let "op2" (Src 91260340667257 (Lam "opr" λxopr (Src 91260346958713 (Lam "fst" λxfst (Src 91260353250169 (Lam "snd" λxsnd (Src 91260361638777 (Lam "Y" λxY (Src 91260365833081 (Lam "N" λxN (Src 91260370027385 (App (Src 91260371075937 xN) (Src 91260373173112 (App (App (App (Src 91260374221675 (Book.Kind.op2)) (Src 91260383658863 xopr)) (Src 91260387853171 xfst)) (Src 91260392047479 xsnd))))))))))))))) λxop2 (Src 91260400436419 (Let "mat" (Src 91260410921918 (Lam "nam" λxnam (Src 91260417213374 (Lam "x" λxx (Src 91260421407678 (Lam "z" λxz (Src 91260425601982 (Lam "s" λxs (Src 91260429796286 (Lam "p" λxp (Src 91260433990590 (Lam "Y" λxY (Src 91260438184894 (Lam "N" λxN (Src 91260442379198 (App (Src 91260443427750 xN) (Src 91260445524925 (App (App (App (App (App (Src 91260446573488 (Book.Kind.mat)) (Src 91260456010676 xnam)) (Src 91260460204982 xx)) (Src 91260462302136 xz)) (Src 91260464399290 xs)) (Src 91260466496444 xp))))))))))))))))))) λxmat (Src 91260472788163 (Let "txt" (Src 91260483273719 (Lam "lit" λxlit (Src 91260502148087 (Lam "Y" λxY (Src 91260506342391 (Lam "N" λxN (Src 91260510536695 (App (Src 91260511585255 xN) (Src 91260513682422 (App (Src 91260514730993 (Book.Kind.txt)) (Src 91260524168181 xlit))))))))))) λxtxt (Src 91260532556995 (Let "hol" (Src 91260543042613 (Lam "nam" λxnam (Src 91260549334069 (Lam "ctx" λxctx (Src 91260562965557 (Lam "Y" λxY (Src 91260567159861 (Lam "N" λxN (Src 91260571354165 (App (Src 91260572402721 xN) (Src 91260574499892 (App (App (Src 91260575548459 (Book.Kind.hol)) (Src 91260584985647 xnam)) (Src 91260589179955 xctx))))))))))))) λxhol (Src 91260597568707 (Let "var" (Src 91260608054387 (Lam "nam" λxnam (Src 91260614345843 (Lam "idx" λxidx (Src 91260627977331 (Lam "Y" λxY (Src 91260632171635 (Lam "N" λxN (Src 91260636365939 (App (Src 91260637414495 xN) (Src 91260639511666 (App (App (Src 91260640560233 (Book.Kind.var)) (Src 91260649997421 xnam)) (Src 91260654191729 xidx))))))))))))) λxvar (Src 91260662580419 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 91260663628924 (Ins (Src 91260664677500 xterm))) (Src 91260669920382 xP)) (Src 91260672017538 xall)) (Src 91260676211846 xlam)) (Src 91260680406154 xapp)) (Src 91260684600462 xann)) (Src 91260688794770 xslf)) (Src 91260692989078 xins)) (Src 91260697183386 xref)) (Src 91260701377694 xdef)) (Src 91260705572002 xset)) (Src 91260709766310 xu60)) (Src 91260713960618 xnum)) (Src 91260718154926 xop2)) (Src 91260722349234 xmat)) (Src 91260726543542 xtxt)) (Src 91260730737850 xhol)) (Src 91260734932158 xvar)) (Src 91260739126464 xY)) (Src 91260741223618 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 91259479785566 (All "term" (Src 91259490271265 (Book.Kind.Term)) λxterm (Src 91259503902814 (All "P" (Src 91259511242797 (Set)) λxP (Src 91259516485726 (All "Y" (Src 91259523825721 xP) λxY (Src 91259529068638 (All "N" (Src 91259536408665 (All "val" (Src 91259545845846 (Book.Kind.Term)) λxval (Src 91259557380185 xP))) λxN (Src 91259562623070 xP))))))))))) -Book.Kind.if.var = (Ref "Kind.if.var" [] (Ann (Src 92359110952191 (Lam "term" λxterm (Src 92359118292223 (Lam "P" λxP (Src 92359122486527 (Lam "Y" λxY (Src 92359126680831 (Lam "N" λxN (Src 92359132972287 (Let "P" (Src 92359143457003 (Lam "x" λxx (Src 92359147651307 (All "Y" (Src 92359154991306 (All "nam" (Src 92359164428473 (Book.String)) λxnam (Src 92359172817098 (All "idx" (Src 92359182254279 (Book.Nat)) λxidx (Src 92359187497162 xP))))) λxY (Src 92359190642923 (All "N" (Src 92359197982952 (All "val" (Src 92359207420133 (Book.Kind.Term)) λxval (Src 92359218954472 xP))) λxN (Src 92359222100203 xP))))))) λxP (Src 92359226295551 (Let "all" (Src 92359236780334 (Lam "nam" λxnam (Src 92359243071790 (Lam "inp" λxinp (Src 92359249363246 (Lam "bod" λxbod (Src 92359257751854 (Lam "Y" λxY (Src 92359261946158 (Lam "N" λxN (Src 92359266140462 (App (Src 92359267189014 xN) (Src 92359269286189 (App (App (App (Src 92359270334752 (Book.Kind.all)) (Src 92359279771940 xnam)) (Src 92359283966248 xinp)) (Src 92359288160556 xbod))))))))))))))) λxall (Src 92359296550143 (Let "lam" (Src 92359307034988 (Lam "nam" λxnam (Src 92359313326444 (Lam "bod" λxbod (Src 92359326957932 (Lam "Y" λxY (Src 92359331152236 (Lam "N" λxN (Src 92359335346540 (App (Src 92359336395096 xN) (Src 92359338492267 (App (App (Src 92359339540834 (Book.Kind.lam)) (Src 92359348978022 xnam)) (Src 92359353172330 xbod))))))))))))) λxlam (Src 92359361561855 (Let "app" (Src 92359372046762 (Lam "fun" λxfun (Src 92359378338218 (Lam "arg" λxarg (Src 92359391969706 (Lam "Y" λxY (Src 92359396164010 (Lam "N" λxN (Src 92359400358314 (App (Src 92359401406870 xN) (Src 92359403504041 (App (App (Src 92359404552608 (Book.Kind.app)) (Src 92359413989796 xfun)) (Src 92359418184104 xarg))))))))))))) λxapp (Src 92359426573567 (Let "ann" (Src 92359437058536 (Lam "val" λxval (Src 92359443349992 (Lam "typ" λxtyp (Src 92359456981480 (Lam "Y" λxY (Src 92359461175784 (Lam "N" λxN (Src 92359465370088 (App (Src 92359466418644 xN) (Src 92359468515815 (App (App (Src 92359469564382 (Book.Kind.ann)) (Src 92359479001570 xval)) (Src 92359483195878 xtyp))))))))))))) λxann (Src 92359491585279 (Let "slf" (Src 92359502070310 (Lam "nam" λxnam (Src 92359508361766 (Lam "bod" λxbod (Src 92359521993254 (Lam "Y" λxY (Src 92359526187558 (Lam "N" λxN (Src 92359530381862 (App (Src 92359531430418 xN) (Src 92359533527589 (App (App (Src 92359534576156 (Book.Kind.slf)) (Src 92359544013344 xnam)) (Src 92359548207652 xbod))))))))))))) λxslf (Src 92359556596991 (Let "ins" (Src 92359567082079 (Lam "val" λxval (Src 92359585956447 (Lam "Y" λxY (Src 92359590150751 (Lam "N" λxN (Src 92359594345055 (App (Src 92359595393615 xN) (Src 92359597490782 (App (Src 92359598539353 (Book.Kind.ins)) (Src 92359607976541 xval))))))))))) λxins (Src 92359616365823 (Let "ref" (Src 92359626850973 (Lam "nam" λxnam (Src 92359633142429 (Lam "val" λxval (Src 92359646773917 (Lam "Y" λxY (Src 92359650968221 (Lam "N" λxN (Src 92359655162525 (App (Src 92359656211081 xN) (Src 92359658308252 (App (App (Src 92359659356819 (Book.Kind.ref)) (Src 92359668794007 xnam)) (Src 92359672988315 xval))))))))))))) λxref (Src 92359681377535 (Let "def" (Src 92359691862752 (Lam "nam" λxnam (Src 92359698154208 (Lam "val" λxval (Src 92359704445664 (Lam "bod" λxbod (Src 92359712834272 (Lam "Y" λxY (Src 92359717028576 (Lam "N" λxN (Src 92359721222880 (App (Src 92359722271432 xN) (Src 92359724368607 (App (App (App (Src 92359725417170 (Book.Kind.def)) (Src 92359734854358 xnam)) (Src 92359739048666 xval)) (Src 92359743242974 xbod))))))))))))))) λxdef (Src 92359751632127 (Let "set" (Src 92359779943186 (Lam "Y" λxY (Src 92359784137490 (Lam "N" λxN (Src 92359788331794 (App (Src 92359789380360 xN) (Src 92359791477521 (Book.Kind.set)))))))) λxset (Src 92359804060927 (Let "u60" (Src 92359832372036 (Lam "Y" λxY (Src 92359836566340 (Lam "N" λxN (Src 92359840760644 (App (Src 92359841809210 xN) (Src 92359843906371 (Book.Kind.u60)))))))) λxu60 (Src 92359856489727 (Let "num" (Src 92359866975101 (Lam "val" λxval (Src 92359885849469 (Lam "Y" λxY (Src 92359890043773 (Lam "N" λxN (Src 92359894238077 (App (Src 92359895286637 xN) (Src 92359897383804 (App (Src 92359898432375 (Book.Kind.num)) (Src 92359907869563 xval))))))))))) λxnum (Src 92359916258559 (Let "op2" (Src 92359926744000 (Lam "opr" λxopr (Src 92359933035456 (Lam "fst" λxfst (Src 92359939326912 (Lam "snd" λxsnd (Src 92359947715520 (Lam "Y" λxY (Src 92359951909824 (Lam "N" λxN (Src 92359956104128 (App (Src 92359957152680 xN) (Src 92359959249855 (App (App (App (Src 92359960298418 (Book.Kind.op2)) (Src 92359969735606 xopr)) (Src 92359973929914 xfst)) (Src 92359978124222 xsnd))))))))))))))) λxop2 (Src 92359986513151 (Let "mat" (Src 92359996998661 (Lam "nam" λxnam (Src 92360003290117 (Lam "x" λxx (Src 92360007484421 (Lam "z" λxz (Src 92360011678725 (Lam "s" λxs (Src 92360015873029 (Lam "p" λxp (Src 92360020067333 (Lam "Y" λxY (Src 92360024261637 (Lam "N" λxN (Src 92360028455941 (App (Src 92360029504493 xN) (Src 92360031601668 (App (App (App (App (App (Src 92360032650231 (Book.Kind.mat)) (Src 92360042087419 xnam)) (Src 92360046281725 xx)) (Src 92360048378879 xz)) (Src 92360050476033 xs)) (Src 92360052573187 xp))))))))))))))))))) λxmat (Src 92360058864895 (Let "txt" (Src 92360069350462 (Lam "lit" λxlit (Src 92360088224830 (Lam "Y" λxY (Src 92360092419134 (Lam "N" λxN (Src 92360096613438 (App (Src 92360097661998 xN) (Src 92360099759165 (App (Src 92360100807736 (Book.Kind.txt)) (Src 92360110244924 xlit))))))))))) λxtxt (Src 92360118633727 (Let "hol" (Src 92360129119356 (Lam "nam" λxnam (Src 92360135410812 (Lam "ctx" λxctx (Src 92360149042300 (Lam "Y" λxY (Src 92360153236604 (Lam "N" λxN (Src 92360157430908 (App (Src 92360158479464 xN) (Src 92360160576635 (App (App (Src 92360161625202 (Book.Kind.hol)) (Src 92360171062390 xnam)) (Src 92360175256698 xctx))))))))))))) λxhol (Src 92360183645439 (Let "var" (Src 92360194131119 (Lam "nam" λxnam (Src 92360200422575 (Lam "idx" λxidx (Src 92360214054063 (Lam "Y" λxY (Src 92360218248367 (Lam "N" λxN (Src 92360222442671 (App (App (Src 92360223491238 xY) (Src 92360225588394 xnam)) (Src 92360229782702 xidx))))))))))) λxvar (Src 92360237122815 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 92360238171320 (Ins (Src 92360239219896 xterm))) (Src 92360244462778 xP)) (Src 92360246559934 xall)) (Src 92360250754242 xlam)) (Src 92360254948550 xapp)) (Src 92360259142858 xann)) (Src 92360263337166 xslf)) (Src 92360267531474 xins)) (Src 92360271725782 xref)) (Src 92360275920090 xdef)) (Src 92360280114398 xset)) (Src 92360284308706 xu60)) (Src 92360288503014 xnum)) (Src 92360292697322 xop2)) (Src 92360296891630 xmat)) (Src 92360301085938 xtxt)) (Src 92360305280246 xhol)) (Src 92360309474554 xvar)) (Src 92360313668860 xY)) (Src 92360315766014 xN))))))))))))))))))))))))))))))))))))))))))))) (Src 92358991413373 (All "term" (Src 92359001899041 (Book.Kind.Term)) λxterm (Src 92359015530621 (All "P" (Src 92359022870573 (Set)) λxP (Src 92359028113533 (All "Y" (Src 92359035453528 (All "nam" (Src 92359044890695 (Book.String)) λxnam (Src 92359053279320 (All "idx" (Src 92359062716501 (Book.Nat)) λxidx (Src 92359067959384 xP))))) λxY (Src 92359073202301 (All "N" (Src 92359080542328 (All "val" (Src 92359089979509 (Book.Kind.Term)) λxval (Src 92359101513848 xP))) λxN (Src 92359106756733 xP))))))))))) -Book.Kind.infer = (Ref "Kind.infer" [] (Ann (Src 56075168516402 (Lam "term" λxterm (Src 56075175856434 (Lam "dep" λxdep (Src 56075184245042 (Let "bind" (Src 56075195777154 (App (App (Src 56075196825709 (Book.Maybe.bind)) (Src 56075208360055 (Book.Kind.Term))) (Src 56075218845825 (Book.Kind.Term)))) λxbind (Src 56075232479538 (Let "pure" (Src 56075244011686 (App (Src 56075245060251 (Book.Maybe.some)) (Src 56075256594597 (Book.Kind.Term)))) λxpure (Src 56075271276850 (Let "none" (Src 56075282809035 (App (Src 56075283857600 (Book.Maybe.none)) (Src 56075295391946 (Book.Kind.Term)))) λxnone (Src 56075309025586 (Let "P" (Src 56075317412086 (Lam "x" λxx (Src 56075320557814 (All "dep" (Src 56075328946404 (Book.Nat)) λxdep (Src 56075333140726 (App (Src 56075334189291 (Book.Maybe)) (Src 56075340480757 (Book.Kind.Term)))))))) λxP (Src 56075354114354 (Let "all" (Src 56075364598199 (Lam "nam" λxnam (Src 56075370889655 (Lam "inp" λxinp (Src 56075377181111 (Lam "bod" λxbod (Src 56075383472567 (Lam "dep" λxdep (Src 56075393958327 (App (App (Src 56075395006756 xbind) (Src 56075400249666 (App (App (App (Src 56075401298224 (Book.Kind.check)) (Src 56075412832564 xinp)) (Src 56075417026877 (Book.Kind.set))) (Src 56075426464065 xdep)))) (Src 56075431707062 (Lam "_" λx_ (Src 56075440095670 (App (App (Src 56075441144144 xbind) (Src 56075446387101 (App (App (App (Src 56075447435612 (Book.Kind.check)) (Src 56075458969988 (App (Src 56075460018529 xbod) (Src 56075464212867 (App (App (Src 56075465261419 (Book.Kind.ann)) (Src 56075474698622 (App (App (Src 56075475747189 (Book.Kind.var)) (Src 56075485184377 xnam)) (Src 56075489378685 xdep)))) (Src 56075494621570 xinp)))))) (Src 56075500913037 (Book.Kind.set))) (Src 56075510350236 (App (Src 56075511398807 (Book.Nat.succ)) (Src 56075520835995 xdep)))))) (Src 56075527127477 (Lam "_" λx_ (Src 56075535516085 (App (Src 56075536564651 xpure) (Src 56075541807540 (Book.Kind.set)))))))))))))))))))) λxall (Src 56075556489522 (Let "lam" (Src 56075566973406 (Lam "nam" λxnam (Src 56075573264862 (Lam "bod" λxbod (Src 56075579556318 (Lam "dep" λxdep (Src 56075590042078 xnone))))))) λxlam (Src 56075597383986 (Let "app" (Src 56075607868256 (Lam "fun" λxfun (Src 56075614159712 (Lam "arg" λxarg (Src 56075620451168 (Lam "dep" λxdep (Src 56075630936928 (App (App (Src 56075631985158 xbind) (Src 56075637228059 (App (App (Src 56075638276626 (Book.Kind.infer)) (Src 56075649810966 xfun)) (Src 56075654005274 xdep)))) (Src 56075659248479 (Lam "fun_typ" λxfun_typ (Src 56075673928543 (App (App (Src 56075674977104 (App (App (App (App (Src 56075676025399 (Book.Kind.if.all)) (Src 56075688608343 (App (App (Src 56075689656900 (Book.Kind.reduce)) (Src 56075702239822 (Book.Bool.true))) (Src 56075712725590 xfun_typ)))) (Src 56075728454293 (All "fun" (Src 56075737891440 (Book.Kind.Term)) λxfun (Src 56075748377237 (All "arg" (Src 56075757814403 (Book.Kind.Term)) λxarg (Src 56075768300181 (App (Src 56075769348746 (Book.Maybe)) (Src 56075775640212 (Book.Kind.Term))))))))) (Src 56075793466150 (Lam "fun_typ.nam" λxfun_typ.nam (Src 56075808146214 (Lam "fun_typ.inp" λxfun_typ.inp (Src 56075822826278 (Lam "fun_typ.bod" λxfun_typ.bod (Src 56075837506342 (Lam "fun" λxfun (Src 56075843797798 (Lam "arg" λxarg (Src 56075858477862 (App (App (Src 56075859526367 xbind) (Src 56075864769280 (App (App (App (Src 56075865817835 (Book.Kind.check)) (Src 56075877352175 xarg)) (Src 56075881546491 xfun_typ.inp)) (Src 56075894129407 xdep)))) (Src 56075899372325 (Lam "_" λx_ (Src 56075911955237 (App (Src 56075913003794 xpure) (Src 56075918246692 (App (Src 56075919295263 xfun_typ.bod) (Src 56075931878179 xarg)))))))))))))))))))) (Src 56075945509711 (Lam "fun_typ" λxfun_typ (Src 56075955995471 (Lam "fun" λxfun (Src 56075962286927 (Lam "arg" λxarg (Src 56075976966991 xnone))))))))) (Src 56075989549914 xfun)) (Src 56075993744222 xarg))))))))))))) λxapp (Src 56076002134322 (Let "ann" (Src 56076012618637 (Lam "val" λxval (Src 56076018910093 (Lam "typ" λxtyp (Src 56076025201549 (Lam "dep" λxdep (Src 56076035687309 (App (Src 56076036735880 xpure) (Src 56076041978764 xtyp))))))))) λxann (Src 56076049320242 (Let "slf" (Src 56076059804714 (Lam "nam" λxnam (Src 56076066096170 (Lam "bod" λxbod (Src 56076072387626 (Lam "dep" λxdep (Src 56076082873386 (App (App (Src 56076083921845 xbind) (Src 56076089164817 (App (App (App (Src 56076090213313 (Book.Kind.check)) (Src 56076101747704 (App (Src 56076102796230 xbod) (Src 56076106990583 (App (App (Src 56076108039120 (Book.Kind.ann)) (Src 56076117476323 (App (App (Src 56076118524890 (Book.Kind.var)) (Src 56076127962078 xnam)) (Src 56076132156386 xdep)))) (Src 56076137399286 (App (App (Src 56076138447853 (Book.Kind.slf)) (Src 56076147885041 xnam)) (Src 56076152079349 xbod)))))))) (Src 56076159419393 (Book.Kind.set))) (Src 56076168856592 (App (Src 56076169905163 (Book.Nat.succ)) (Src 56076179342351 xdep)))))) (Src 56076185633833 (Lam "_" λx_ (Src 56076194022441 (App (Src 56076195071007 xpure) (Src 56076200313896 (Book.Kind.set)))))))))))))) λxslf (Src 56076213946674 (Let "ins" (Src 56076224431416 (Lam "val" λxval (Src 56076230722872 (Lam "dep" λxdep (Src 56076241208632 (App (App (Src 56076242256972 xbind) (Src 56076247499873 (App (App (Src 56076248548440 (Book.Kind.infer)) (Src 56076260082780 xval)) (Src 56076264277088 xdep)))) (Src 56076269520183 (Lam "val_typ" λxval_typ (Src 56076284200247 (App (Src 56076285248812 (App (App (App (App (Src 56076286297213 (Book.Kind.if.slf)) (Src 56076298880157 (App (App (Src 56076299928714 (Book.Kind.reduce)) (Src 56076312511636 (Book.Bool.true))) (Src 56076322997404 xval_typ)))) (Src 56076338726088 (All "val" (Src 56076348163254 (Book.Kind.Term)) λxval (Src 56076358649032 (App (Src 56076359697597 (Book.Maybe)) (Src 56076365989063 (Book.Kind.Term))))))) (Src 56076383814928 (Lam "val_nam" λxval_nam (Src 56076394300688 (Lam "val_typ.bod" λxval_typ.bod (Src 56076408980752 (Lam "val" λxval (Src 56076415272208 (App (Src 56076416320754 xpure) (Src 56076421563663 (App (Src 56076422612223 xval_typ.bod) (Src 56076435195150 (App (Src 56076436243721 (Book.Kind.ins)) (Src 56076445680909 xval)))))))))))))) (Src 56076459312427 (Lam "val_typ" λxval_typ (Src 56076469798187 (Lam "val" λxval (Src 56076476089643 xnone))))))) (Src 56076488672566 xval))))))))))) λxins (Src 56076497062194 (Let "ref" (Src 56076507546991 (Lam "nam" λxnam (Src 56076513838447 (Lam "val" λxval (Src 56076520129903 (Lam "dep" λxdep (Src 56076530615663 (App (App (Src 56076531664230 (Book.Kind.infer)) (Src 56076543198570 xval)) (Src 56076547392878 xdep))))))))) λxref (Src 56076554733874 (Let "def" (Src 56076565218716 (Lam "nam" λxnam (Src 56076571510172 (Lam "val" λxval (Src 56076577801628 (Lam "bod" λxbod (Src 56076584093084 (Lam "dep" λxdep (Src 56076594578844 xnone))))))))) λxdef (Src 56076601919794 (Let "set" (Src 56076612404674 (Lam "dep" λxdep (Src 56076622890434 (App (Src 56076623939000 xpure) (Src 56076629181889 (Book.Kind.set)))))) λxset (Src 56076641765682 (Let "u60" (Src 56076652250600 (Lam "dep" λxdep (Src 56076662736360 (App (Src 56076663784926 xpure) (Src 56076669027815 (Book.Kind.set)))))) λxu60 (Src 56076681611570 (Let "num" (Src 56076692096532 (Lam "num" λxnum (Src 56076698387988 (Lam "dep" λxdep (Src 56076708873748 (App (Src 56076709922314 xpure) (Src 56076715165203 (Book.Kind.u60)))))))) λxnum (Src 56076727748914 (Let "txt" (Src 56076738233928 (Lam "txt" λxtxt (Src 56076744525384 (Lam "dep" λxdep (Src 56076755011144 (App (Src 56076756059702 xpure) (Src 56076761302599 (Book.Kind.Book.String)))))))) λxtxt (Src 56076782274866 (Let "op2" (Src 56076792760026 (Lam "opr" λxopr (Src 56076799051482 (Lam "fst" λxfst (Src 56076805342938 (Lam "snd" λxsnd (Src 56076811634394 (Lam "dep" λxdep (Src 56076822120154 (App (App (Src 56076823168630 xbind) (Src 56076828411540 (App (App (App (Src 56076829460098 (Book.Kind.check)) (Src 56076840994438 xfst)) (Src 56076845188751 (Book.Kind.u60))) (Src 56076854625939 xdep)))) (Src 56076859868889 (Lam "_" λx_ (Src 56076868257497 (App (App (Src 56076869306018 xbind) (Src 56076874548928 (App (App (App (Src 56076875597486 (Book.Kind.check)) (Src 56076887131826 xsnd)) (Src 56076891326139 (Book.Kind.u60))) (Src 56076900763327 xdep)))) (Src 56076906006232 (Lam "_" λx_ (Src 56076914394840 (App (Src 56076915443406 xpure) (Src 56076920686295 (Book.Kind.u60)))))))))))))))))))) λxop2 (Src 56076935366962 (Let "mat" (Src 56076945852564 (Lam "nam" λxnam (Src 56076952144020 (Lam "x" λxx (Src 56076956338324 (Lam "z" λxz (Src 56076960532628 (Lam "s" λxs (Src 56076964726932 (Lam "p" λxp (Src 56076968921236 (Lam "dep" λxdep (Src 56076979406996 (App (App (Src 56076980455180 xbind) (Src 56076985698088 (App (App (App (Src 56076986746648 (Book.Kind.check)) (Src 56076998280986 xx)) (Src 56077000378147 (Book.Kind.u60))) (Src 56077009815335 xdep)))) (Src 56077015058579 (Lam "x_typ" λxx_typ (Src 56077027641491 (App (App (Src 56077028689722 xbind) (Src 56077033932671 (App (App (App (Src 56077034981190 (Book.Kind.check)) (Src 56077046515569 (App (Src 56077047564105 xp) (Src 56077049661296 (App (App (Src 56077050709843 (Book.Kind.ann)) (Src 56077060147046 (App (App (Src 56077061195613 (Book.Kind.var)) (Src 56077070632801 xnam)) (Src 56077074827109 xdep)))) (Src 56077080069999 (Book.Kind.u60))))))) (Src 56077091604346 (Book.Kind.set))) (Src 56077101041534 xdep)))) (Src 56077106284690 (Lam "p_typ" λxp_typ (Src 56077118867602 (App (App (Src 56077119915921 xbind) (Src 56077125158838 (App (App (App (Src 56077126207389 (Book.Kind.check)) (Src 56077137741727 xz)) (Src 56077139838897 (App (Src 56077140887458 xp) (Src 56077142984624 (App (Src 56077144033196 (Book.Kind.num)) (Src 56077153470383 (Num 0))))))) (Src 56077158713269 xdep)))) (Src 56077163956369 (Lam "z_typ" λxz_typ (Src 56077176539281 (App (App (Src 56077177587656 xbind) (Src 56077182830711 (App (App (App (Src 56077183879124 (Book.Kind.check)) (Src 56077195413524 (App (Src 56077196462039 xs) (Src 56077198559251 (App (App (Src 56077199607777 (Book.Kind.ann)) (Src 56077209045001 (App (App (Src 56077210093547 (Book.Kind.var)) (Src 56077219530756 (App (App (Src 56077220579322 (Book.String.concat)) (Src 56077235259390 xnam)) (Src 56077239453699 (Txt "-1"))))) (Src 56077245745160 xdep)))) (Src 56077250988050 (Book.Kind.u60))))))) (Src 56077262522471 (App (Src 56077263570967 xp) (Src 56077265668198 (App (App (App (Src 56077266716705 (Book.Kind.op2)) (Src 56077276153903 (Book.Kind.Oper.add))) (Src 56077290833981 (App (Src 56077291882553 (Book.Kind.num)) (Src 56077301319740 (Num 1))))) (Src 56077305514085 (App (App (Src 56077306562631 (Book.Kind.var)) (Src 56077315999840 (App (App (Src 56077317048406 (Book.String.concat)) (Src 56077331728474 xnam)) (Src 56077335922783 (Txt "-1"))))) (Src 56077342214244 xdep)))))))) (Src 56077349554294 (App (Src 56077350602865 (Book.Nat.succ)) (Src 56077360040053 xdep)))))) (Src 56077366331536 (Lam "s_typ" λxs_typ (Src 56077378914448 (App (Src 56077379963017 xpure) (Src 56077385205903 (App (Src 56077386254476 xp) (Src 56077388351630 xx))))))))))))))))))))))))))))))))) λxmat (Src 56077398837554 (Let "hol" (Src 56077409323195 (Lam "nam" λxnam (Src 56077415614651 (Lam "ctx" λxctx (Src 56077421906107 (Lam "dep" λxdep (Src 56077432391867 xnone))))))) λxhol (Src 56077439732018 (Let "var" (Src 56077450217698 (Lam "nam" λxnam (Src 56077456509154 (Lam "idx" λxidx (Src 56077462800610 (Lam "dep" λxdep (Src 56077473286370 xnone))))))) λxvar (Src 56077480626482 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 56077481674987 (Ins (Src 56077482723563 xterm))) (Src 56077487966445 xP)) (Src 56077490063601 xall)) (Src 56077494257909 xlam)) (Src 56077498452217 xapp)) (Src 56077502646525 xann)) (Src 56077506840833 xslf)) (Src 56077511035141 xins)) (Src 56077515229449 xref)) (Src 56077519423757 xdef)) (Src 56077523618065 xset)) (Src 56077527812373 xu60)) (Src 56077532006681 xnum)) (Src 56077536200989 xop2)) (Src 56077540395297 xmat)) (Src 56077544589605 xtxt)) (Src 56077548783913 xhol)) (Src 56077552978221 xvar)) (Src 56077557172529 xdep))))))))))))))))))))))))))))))))))))))))))))))) (Src 56075106648133 (All "term" (Src 56075117133856 (Book.Kind.Term)) λxterm (Src 56075130765381 (All "dep" (Src 56075140202544 (Book.Nat)) λxdep (Src 56075147542597 (App (Src 56075148591162 (Book.Maybe)) (Src 56075154882628 (Book.Kind.Term)))))))))) -Book.Kind.ins = (Ref "Kind.ins" [] (Ann (Src 34084907647141 (Lam "val" λxval (Src 34084916035749 (Ins (Src 34084917084325 (Lam "P" λxP (Src 34084921278629 (Lam "all" λxall (Src 34084927570085 (Lam "lam" λxlam (Src 34084933861541 (Lam "app" λxapp (Src 34084940152997 (Lam "ann" λxann (Src 34084946444453 (Lam "slf" λxslf (Src 34084952735909 (Lam "ins" λxins (Src 34084959027365 (Lam "ref" λxref (Src 34084965318821 (Lam "def" λxdef (Src 34084971610277 (Lam "set" λxset (Src 34084977901733 (Lam "u60" λxu60 (Src 34084984193189 (Lam "num" λxnum (Src 34084990484645 (Lam "op2" λxop2 (Src 34084996776101 (Lam "mat" λxmat (Src 34085003067557 (Lam "txt" λxtxt (Src 34085009359013 (Lam "hol" λxhol (Src 34085015650469 (Lam "var" λxvar (Src 34085024039077 (App (Src 34085025087648 xins) (Src 34085029281956 xval))))))))))))))))))))))))))))))))))))))))) (Src 34084871995434 (All "val" (Src 34084881432605 (Book.Kind.Term)) λxval (Src 34084895064106 (Book.Kind.Term)))))) -Book.Kind.lam = (Ref "Kind.lam" [] (Ann (Src 35184458072276 (Lam "nam" λxnam (Src 35184464363732 (Lam "bod" λxbod (Src 35184472752340 (Ins (Src 35184473800916 (Lam "P" λxP (Src 35184477995220 (Lam "all" λxall (Src 35184484286676 (Lam "lam" λxlam (Src 35184490578132 (Lam "app" λxapp (Src 35184496869588 (Lam "ann" λxann (Src 35184503161044 (Lam "slf" λxslf (Src 35184509452500 (Lam "ins" λxins (Src 35184515743956 (Lam "ref" λxref (Src 35184522035412 (Lam "def" λxdef (Src 35184528326868 (Lam "set" λxset (Src 35184534618324 (Lam "u60" λxu60 (Src 35184540909780 (Lam "num" λxnum (Src 35184547201236 (Lam "op2" λxop2 (Src 35184553492692 (Lam "mat" λxmat (Src 35184559784148 (Lam "txt" λxtxt (Src 35184566075604 (Lam "hol" λxhol (Src 35184572367060 (Lam "var" λxvar (Src 35184580755668 (App (App (Src 35184581804235 xlam) (Src 35184585998543 xnam)) (Src 35184590192851 xbod))))))))))))))))))))))))))))))))))))))))))) (Src 35184383623247 (All "nam" (Src 35184393060378 (Book.String)) λxnam (Src 35184403546191 (All "bod" (Src 35184412983362 (All "x" (Src 35184420323383 (Book.Kind.Term)) λxx (Src 35184431857730 (Book.Kind.Term)))) λxbod (Src 35184445489231 (Book.Kind.Term)))))))) -Book.Kind.mat = (Ref "Kind.mat" [] (Ann (Src 36284049391918 (Lam "nam" λxnam (Src 36284055683374 (Lam "x" λxx (Src 36284059877678 (Lam "z" λxz (Src 36284064071982 (Lam "s" λxs (Src 36284068266286 (Lam "p" λxp (Src 36284074557742 (Ins (Src 36284075606318 (Lam "P" λxP (Src 36284079800622 (Lam "all" λxall (Src 36284086092078 (Lam "lam" λxlam (Src 36284092383534 (Lam "app" λxapp (Src 36284098674990 (Lam "ann" λxann (Src 36284104966446 (Lam "slf" λxslf (Src 36284111257902 (Lam "ins" λxins (Src 36284117549358 (Lam "ref" λxref (Src 36284123840814 (Lam "def" λxdef (Src 36284130132270 (Lam "set" λxset (Src 36284136423726 (Lam "u60" λxu60 (Src 36284142715182 (Lam "num" λxnum (Src 36284149006638 (Lam "op2" λxop2 (Src 36284155298094 (Lam "mat" λxmat (Src 36284161589550 (Lam "txt" λxtxt (Src 36284167881006 (Lam "hol" λxhol (Src 36284174172462 (Lam "var" λxvar (Src 36284182561070 (App (App (App (App (App (Src 36284183609633 xmat) (Src 36284187803941 xnam)) (Src 36284191998247 xx)) (Src 36284194095401 xz)) (Src 36284196192555 xs)) (Src 36284198289709 xp))))))))))))))))))))))))))))))))))))))))))))))))) (Src 36283895251099 (All "nam" (Src 36283904688154 (Book.String)) λxnam (Src 36283915174043 (All "x" (Src 36283922513966 (Book.Kind.Term)) λxx (Src 36283936145563 (All "z" (Src 36283943485506 (Book.Kind.Term)) λxz (Src 36283957117083 (All "s" (Src 36283964457064 (All "x" (Src 36283971797085 (Book.Kind.Term)) λxx (Src 36283983331432 (Book.Kind.Term)))) λxs (Src 36283996962971 (All "p" (Src 36284004302990 (All "x" (Src 36284011643011 (Book.Kind.Term)) λxx (Src 36284023177358 (Book.Kind.Term)))) λxp (Src 36284036808859 (Book.Kind.Term)))))))))))))) -Book.Kind.num = (Ref "Kind.num" [] (Ann (Src 37383437287584 (Lam "val" λxval (Src 37383445676192 (Ins (Src 37383446724768 (Lam "P" λxP (Src 37383450919072 (Lam "all" λxall (Src 37383457210528 (Lam "lam" λxlam (Src 37383463501984 (Lam "app" λxapp (Src 37383469793440 (Lam "ann" λxann (Src 37383476084896 (Lam "slf" λxslf (Src 37383482376352 (Lam "ins" λxins (Src 37383488667808 (Lam "ref" λxref (Src 37383494959264 (Lam "def" λxdef (Src 37383501250720 (Lam "set" λxset (Src 37383507542176 (Lam "u60" λxu60 (Src 37383513833632 (Lam "num" λxnum (Src 37383520125088 (Lam "op2" λxop2 (Src 37383526416544 (Lam "mat" λxmat (Src 37383532708000 (Lam "txt" λxtxt (Src 37383538999456 (Lam "hol" λxhol (Src 37383545290912 (Lam "var" λxvar (Src 37383553679520 (App (Src 37383554728091 xnum) (Src 37383558922399 xval))))))))))))))))))))))))))))))))))))))))) (Src 37383406878757 (All "val" (Src 37383416315928 (U60)) λxval (Src 37383424704549 (Book.Kind.Term)))))) -Book.Kind.op2 = (Ref "Kind.op2" [] (Ann (Src 38483000295653 (Lam "opr" λxopr (Src 38483006587109 (Lam "fst" λxfst (Src 38483012878565 (Lam "snd" λxsnd (Src 38483021267173 (Ins (Src 38483022315749 (Lam "P" λxP (Src 38483026510053 (Lam "all" λxall (Src 38483032801509 (Lam "lam" λxlam (Src 38483039092965 (Lam "app" λxapp (Src 38483045384421 (Lam "ann" λxann (Src 38483051675877 (Lam "slf" λxslf (Src 38483057967333 (Lam "ins" λxins (Src 38483064258789 (Lam "ref" λxref (Src 38483070550245 (Lam "def" λxdef (Src 38483076841701 (Lam "set" λxset (Src 38483083133157 (Lam "u60" λxu60 (Src 38483089424613 (Lam "num" λxnum (Src 38483095716069 (Lam "op2" λxop2 (Src 38483102007525 (Lam "mat" λxmat (Src 38483108298981 (Lam "txt" λxtxt (Src 38483114590437 (Lam "hol" λxhol (Src 38483120881893 (Lam "var" λxvar (Src 38483129270501 (App (App (App (Src 38483130319064 xop2) (Src 38483134513372 xopr)) (Src 38483138707680 xfst)) (Src 38483142901988 xsnd))))))))))))))))))))))))))))))))))))))))))))) (Src 38482918506582 (All "opr" (Src 38482927943709 (Book.Kind.Oper)) λxopr (Src 38482941575254 (All "fst" (Src 38482951012403 (Book.Kind.Term)) λxfst (Src 38482964643926 (All "snd" (Src 38482974081097 (Book.Kind.Term)) λxsnd (Src 38482987712598 (Book.Kind.Term)))))))))) -Book.Kind.reduce = (Ref "Kind.reduce" [] (Ann (Src 58274185478931 (Lam "maj" λxmaj (Src 58274191770387 (Lam "term" λxterm (Src 58274201207571 (Let "P" (Src 58274211692649 (Lam "x" λxx (Src 58274214838377 (Src 58274215886952 (Book.Kind.Term))))) λxP (Src 58274229519123 (Let "all" (Src 58274240004222 (Book.Kind.all)) λxall (Src 58274251539219 (Let "lam" (Src 58274262024339 (Book.Kind.lam)) λxlam (Src 58274273559315 (Let "app" (Src 58274284044507 (Lam "fun" λxfun (Src 58274290335963 (Lam "arg" λxarg (Src 58274296627419 (App (App (App (Src 58274297675964 (Book.Kind.reduce.app)) (Src 58274314453184 xmaj)) (Src 58274318647510 (App (App (Src 58274319696077 (Book.Kind.reduce)) (Src 58274332278993 xmaj)) (Src 58274336473301 xfun)))) (Src 58274341716186 xarg))))))) λxapp (Src 58274349056787 (Let "slf" (Src 58274359542000 (Book.Kind.slf)) λxslf (Src 58274371076883 (Let "ann" (Src 58274381562142 (Lam "val" λxval (Src 58274387853598 (Lam "typ" λxtyp (Src 58274394145054 (App (App (Src 58274395193621 (Book.Kind.reduce)) (Src 58274407776537 xmaj)) (Src 58274411970845 xval))))))) λxann (Src 58274419311379 (Let "ins" (Src 58274429796678 (Lam "val" λxval (Src 58274436088134 (App (App (Src 58274437136701 (Book.Kind.reduce)) (Src 58274449719617 xmaj)) (Src 58274453913925 xval))))) λxins (Src 58274461254419 (Let "ref" (Src 58274471739772 (Lam "nam" λxnam (Src 58274478031228 (Lam "val" λxval (Src 58274484322684 (App (App (App (Src 58274485371247 (Book.Kind.reduce.ref)) (Src 58274502148467 xmaj)) (Src 58274506342775 xnam)) (Src 58274510537083 xval))))))) λxref (Src 58274517877523 (Let "def" (Src 58274528362934 (Lam "nam" λxnam (Src 58274534654390 (Lam "val" λxval (Src 58274540945846 (Lam "bod" λxbod (Src 58274547237302 (App (App (Src 58274548285863 (Book.Kind.reduce)) (Src 58274560868779 xmaj)) (Src 58274565063093 (App (Src 58274566111664 xbod) (Src 58274570305972 xval))))))))))) λxdef (Src 58274578694931 (Let "set" (Src 58274589180363 (Book.Kind.set)) λxset (Src 58274600715027 (Let "u60" (Src 58274611200480 (Book.Kind.u60)) λxu60 (Src 58274622735123 (Let "num" (Src 58274633220597 (Book.Kind.num)) λxnum (Src 58274644755219 (Let "op2" (Src 58274655240753 (Lam "opr" λxopr (Src 58274661532209 (Lam "fst" λxfst (Src 58274667823665 (Lam "snd" λxsnd (Src 58274674115121 (App (App (App (Src 58274675163684 (Book.Kind.reduce.op2)) (Src 58274691940904 xopr)) (Src 58274696135212 xfst)) (Src 58274700329520 xsnd))))))))) λxop2 (Src 58274707669779 (Let "mat" (Src 58274718155381 (Lam "nam" λxnam (Src 58274724446837 (Lam "x" λxx (Src 58274728641141 (Lam "z" λxz (Src 58274732835445 (Lam "s" λxs (Src 58274737029749 (Lam "p" λxp (Src 58274741224053 (App (App (App (App (App (App (Src 58274742272612 (Book.Kind.reduce.mat)) (Src 58274759049832 xmaj)) (Src 58274763244140 xnam)) (Src 58274767438446 xx)) (Src 58274769535600 xz)) (Src 58274771632754 xs)) (Src 58274773729908 xp))))))))))))) λxmat (Src 58274778972947 (Let "txt" (Src 58274789458589 (Lam "txt" λxtxt (Src 58274795750045 (App (Src 58274796798616 (Book.Kind.reduce.txt)) (Src 58274813575836 xtxt))))) λxtxt (Src 58274820915987 (Let "hol" (Src 58274831401650 (Book.Kind.hol)) λxhol (Src 58274842936083 (Let "var" (Src 58274853421767 (Book.Kind.var)) λxvar (Src 58274864956179 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 58274866004688 (Ins (Src 58274867053264 xterm))) (Src 58274872296146 xP)) (Src 58274874393302 xall)) (Src 58274878587610 xlam)) (Src 58274882781918 xapp)) (Src 58274886976226 xann)) (Src 58274891170534 xslf)) (Src 58274895364842 xins)) (Src 58274899559150 xref)) (Src 58274903753458 xdef)) (Src 58274907947766 xset)) (Src 58274912142074 xu60)) (Src 58274916336382 xnum)) (Src 58274920530690 xop2)) (Src 58274924724998 xmat)) (Src 58274928919306 xtxt)) (Src 58274933113614 xhol)) (Src 58274937307922 xvar))))))))))))))))))))))))))))))))))))))))) (Src 58274130952255 (All "maj" (Src 58274140389403 (Book.Bool)) λxmaj (Src 58274148778047 (All "term" (Src 58274159263794 (Book.Kind.Term)) λxterm (Src 58274172895295 (Book.Kind.Term)))))))) -Book.Kind.reduce.app = (Ref "Kind.reduce.app" [] (Ann (Src 59373723320613 (Lam "maj" λxmaj (Src 59373729612069 (Lam "fun" λxfun (Src 59373735903525 (Lam "arg" λxarg (Src 59373744292133 (Let "P" (Src 59373752680596 (All "arg" (Src 59373762117769 (Book.Kind.Term)) λxarg (Src 59373773652116 (Book.Kind.Term)))) λxP (Src 59373786235173 (Let "Y" (Src 59373794623710 (Lam "nam" λxnam (Src 59373800915166 (Lam "bod" λxbod (Src 59373807206622 (Lam "arg" λxarg (Src 59373813498078 (App (App (Src 59373814546621 (Book.Kind.reduce)) (Src 59373827129537 xmaj)) (Src 59373831323869 (App (Src 59373832372422 xbod) (Src 59373836566748 (App (App (Src 59373837615315 (Book.Kind.reduce)) (Src 59373850198231 xmaj)) (Src 59373854392539 xarg))))))))))))) λxY (Src 59373863829797 (Let "N" (Src 59373872218375 (Lam "fun" λxfun (Src 59373878509831 (Lam "arg" λxarg (Src 59373884801287 (App (App (Src 59373885849854 (Book.Kind.app)) (Src 59373895287042 xfun)) (Src 59373899481350 xarg))))))) λxN (Src 59373906821413 (App (App (App (App (App (Src 59373907869974 (Book.Kind.if.lam)) (Src 59373920452890 xfun)) (Src 59373924647196 xP)) (Src 59373926744350 xY)) (Src 59373928841504 xN)) (Src 59373930938660 xarg))))))))))))))) (Src 59373646774360 (All "maj" (Src 59373656211487 (Book.Bool)) λxmaj (Src 59373664600152 (All "fun" (Src 59373674037301 (Book.Kind.Term)) λxfun (Src 59373687668824 (All "arg" (Src 59373697105995 (Book.Kind.Term)) λxarg (Src 59373710737496 (Book.Kind.Term)))))))))) -Book.Kind.reduce.mat = (Ref "Kind.reduce.mat" [] (Ann (Src 61572837802539 (Lam "maj" λxmaj (Src 61572844093995 (Lam "nam" λxnam (Src 61572850385451 (Lam "x" λxx (Src 61572854579755 (Lam "z" λxz (Src 61572858774059 (Lam "s" λxs (Src 61572862968363 (Lam "p" λxp (Src 61572869259819 (Let "P" (Src 61572877648149 (All "z" (Src 61572884988136 (Book.Kind.Term)) λxz (Src 61572896522517 (All "s" (Src 61572903862538 (All "x" (Src 61572910153984 (Book.Kind.Term)) λxx (Src 61572920639754 (Book.Kind.Term)))) λxs (Src 61572932174101 (Book.Kind.Term)))))) λxP (Src 61572944757291 (Let "Y" (Src 61572953145824 (Lam "x.val" λxx.val (Src 61572965728736 (Mat "x" (Src 61572977262908 xx.val) (Src 61572996137316 (Lam "z" λxz (Src 61573000331620 (Lam "s" λxs (Src 61573004525924 (App (App (Src 61573005574493 (Book.Kind.reduce)) (Src 61573018157409 xmaj)) (Src 61573022351715 xz))))))) λxx._.1 (Src 61573035983259 (Lam "z" λxz (Src 61573040177563 (Lam "s" λxs (Src 61573044371867 (App (App (Src 61573045420419 (Book.Kind.reduce)) (Src 61573058003335 xmaj)) (Src 61573062197658 (App (Src 61573063246218 xs) (Src 61573065343385 (App (Src 61573066391956 (Book.Kind.num)) (Src 61573075829144 xx._.1))))))))))) λxx (Src 61573090509280 (All "z" (Src 61573097849267 (Book.Kind.Term)) λxz (Src 61573109383648 (All "s" (Src 61573116723669 (All "x" (Src 61573123015115 (Book.Kind.Term)) λxx (Src 61573133500885 (Book.Kind.Term)))) λxs (Src 61573145035232 (Book.Kind.Term)))))))))) λxY (Src 61573157618219 (Let "N" (Src 61573166006797 (Lam "x" λxx (Src 61573170201101 (Lam "z" λxz (Src 61573174395405 (Lam "s" λxs (Src 61573178589709 (App (App (App (App (App (Src 61573179638272 (Book.Kind.mat)) (Src 61573189075460 xnam)) (Src 61573193269766 xx)) (Src 61573195366920 xz)) (Src 61573197464074 xs)) (Src 61573199561228 xp))))))))) λxN (Src 61573204804139 (App (App (Src 61573205852710 (App (App (App (App (Src 61573206901277 (Book.Kind.if.num)) (Src 61573219484191 xx)) (Src 61573221581345 xP)) (Src 61573223678499 xY)) (Src 61573225775653 xN))) (Src 61573228921384 xz)) (Src 61573231018538 xs))))))))))))))))))))) (Src 61572670029999 (All "maj" (Src 61572679467039 (Book.Bool)) λxmaj (Src 61572687855791 (All "nam" (Src 61572697292850 (Book.String)) λxnam (Src 61572707778735 (All "x" (Src 61572715118662 (Book.Kind.Term)) λxx (Src 61572728750255 (All "z" (Src 61572736090202 (Book.Kind.Term)) λxz (Src 61572749721775 (All "s" (Src 61572757061758 (All "x" (Src 61572763353204 (Book.Kind.Term)) λxx (Src 61572773838974 (Book.Kind.Term)))) λxs (Src 61572787470511 (All "p" (Src 61572794810530 (All "x" (Src 61572801101976 (Book.Kind.Term)) λxx (Src 61572811587746 (Book.Kind.Term)))) λxp (Src 61572825219247 (Book.Kind.Term)))))))))))))))) -Book.Kind.reduce.op2 = (Ref "Kind.reduce.op2" [] (Ann (Src 63771775075987 (Lam "opr" λxopr (Src 63771781367443 (Lam "fst" λxfst (Src 63771787658899 (Lam "snd" λxsnd (Src 63771796047507 (Let "P" (Src 63771804434585 (All "snd" (Src 63771813871758 (Book.Kind.Term)) λxsnd (Src 63771825406105 (Book.Kind.Term)))) λxP (Src 63771837990547 (Let "Y" (Src 63771846379080 (Lam "fst_val" λxfst_val (Src 63771856864840 (Lam "snd" λxsnd (Src 63771867350600 (Let "P" (Src 63771875737820 (All "fst_val" (Src 63771889369297 (U60)) λxfst_val (Src 63771895660764 (Book.Kind.Term)))) λxP (Src 63771910342216 (Let "Y" (Src 63771918730722 (Lam "snd_val" λxsnd_val (Src 63771929216482 (Lam "fst_val" λxfst_val (Src 63771945993698 (Let "P" (Src 63771956478272 (Lam "x" λxx (Src 63771960672576 (All "fst_val" (Src 63771974304034 (U60)) λxfst_val (Src 63771980595520 (All "snd_val" (Src 63771994226997 (U60)) λxsnd_val (Src 63772000518464 (Book.Kind.Term)))))))) λxP (Src 63772017296866 (Let "add" (Src 63772027781508 (Lam "fst_val" λxfst_val (Src 63772038267268 (Lam "snd_val" λxsnd_val (Src 63772048753028 (App (Src 63772049801582 (Book.Kind.num)) (Src 63772059238787 (Op2 ADD (Src 63772063433082 xfst_val) (Src 63772071821698 xsnd_val))))))))) λxadd (Src 63772088600034 (Let "mul" (Src 63772099084744 (Lam "fst_val" λxfst_val (Src 63772109570504 (Lam "snd_val" λxsnd_val (Src 63772120056264 (App (Src 63772121104818 (Book.Kind.num)) (Src 63772130542023 (Op2 MUL (Src 63772134736318 xfst_val) (Src 63772143124934 xsnd_val))))))))) λxmul (Src 63772159903202 (Let "sub" (Src 63772170387980 (Lam "fst_val" λxfst_val (Src 63772180873740 (Lam "snd_val" λxsnd_val (Src 63772191359500 (App (Src 63772192408054 (Book.Kind.num)) (Src 63772201845259 (Op2 SUB (Src 63772206039554 xfst_val) (Src 63772214428170 xsnd_val))))))))) λxsub (Src 63772231206370 (Let "div" (Src 63772241691216 (Lam "fst_val" λxfst_val (Src 63772252176976 (Lam "snd_val" λxsnd_val (Src 63772262662736 (App (Src 63772263711290 (Book.Kind.num)) (Src 63772273148495 (Op2 DIV (Src 63772277342790 xfst_val) (Src 63772285731406 xsnd_val))))))))) λxdiv (Src 63772302509538 (Let "mod" (Src 63772312994452 (Lam "fst_val" λxfst_val (Src 63772323480212 (Lam "snd_val" λxsnd_val (Src 63772333965972 (App (Src 63772335014526 (Book.Kind.num)) (Src 63772344451731 (Op2 MOD (Src 63772348646026 xfst_val) (Src 63772357034642 xsnd_val))))))))) λxmod (Src 63772373812706 (Let "eq" (Src 63772384297689 (Lam "fst_val" λxfst_val (Src 63772394783449 (Lam "snd_val" λxsnd_val (Src 63772405269209 (App (Src 63772406317762 (Book.Kind.num)) (Src 63772415754968 (Op2 EQ (Src 63772420997839 xfst_val) (Src 63772429386455 xsnd_val))))))))) λxeq (Src 63772446164450 (Let "ne" (Src 63772456649502 (Lam "fst_val" λxfst_val (Src 63772467135262 (Lam "snd_val" λxsnd_val (Src 63772477621022 (App (Src 63772478669575 (Book.Kind.num)) (Src 63772488106781 (Op2 NE (Src 63772493349652 xfst_val) (Src 63772501738268 xsnd_val))))))))) λxne (Src 63772518516194 (Let "lt" (Src 63772529001314 (Lam "fst_val" λxfst_val (Src 63772539487074 (Lam "snd_val" λxsnd_val (Src 63772549972834 (App (Src 63772551021388 (Book.Kind.num)) (Src 63772560458593 (Op2 LT (Src 63772564652888 xfst_val) (Src 63772573041504 xsnd_val))))))))) λxlt (Src 63772589819362 (Let "gt" (Src 63772600304550 (Lam "fst_val" λxfst_val (Src 63772610790310 (Lam "snd_val" λxsnd_val (Src 63772621276070 (App (Src 63772622324624 (Book.Kind.num)) (Src 63772631761829 (Op2 GT (Src 63772635956124 xfst_val) (Src 63772644344740 xsnd_val))))))))) λxgt (Src 63772661122530 (Let "lte" (Src 63772671607787 (Lam "fst_val" λxfst_val (Src 63772682093547 (Lam "snd_val" λxsnd_val (Src 63772692579307 (App (Src 63772693627860 (Book.Kind.num)) (Src 63772703065066 (Op2 LTE (Src 63772708307937 xfst_val) (Src 63772716696553 xsnd_val))))))))) λxlte (Src 63772733474274 (Let "gte" (Src 63772743959600 (Lam "fst_val" λxfst_val (Src 63772754445360 (Lam "snd_val" λxsnd_val (Src 63772764931120 (App (Src 63772765979673 (Book.Kind.num)) (Src 63772775416879 (Op2 GTE (Src 63772780659750 xfst_val) (Src 63772789048366 xsnd_val))))))))) λxgte (Src 63772805826018 (Let "and" (Src 63772816311412 (Lam "fst_val" λxfst_val (Src 63772826797172 (Lam "snd_val" λxsnd_val (Src 63772837282932 (App (Src 63772838331486 (Book.Kind.num)) (Src 63772847768691 (Op2 AND (Src 63772851962986 xfst_val) (Src 63772860351602 xsnd_val))))))))) λxand (Src 63772877129186 (Let "or" (Src 63772887614648 (Lam "fst_val" λxfst_val (Src 63772898100408 (Lam "snd_val" λxsnd_val (Src 63772908586168 (App (Src 63772909634722 (Book.Kind.num)) (Src 63772919071927 (Op2 OR (Src 63772923266222 xfst_val) (Src 63772931654838 xsnd_val))))))))) λxor (Src 63772948432354 (Let "xor" (Src 63772958917884 (Lam "fst_val" λxfst_val (Src 63772969403644 (Lam "snd_val" λxsnd_val (Src 63772979889404 (App (Src 63772980937958 (Book.Kind.num)) (Src 63772990375163 (Op2 XOR (Src 63772994569458 xfst_val) (Src 63773002958074 xsnd_val))))))))) λxxor (Src 63773019735522 (Let "lsh" (Src 63773030221121 (Lam "fst_val" λxfst_val (Src 63773040706881 (Lam "snd_val" λxsnd_val (Src 63773051192641 (App (Src 63773052241194 (Book.Kind.num)) (Src 63773061678400 (Op2 LSH (Src 63773066921271 xfst_val) (Src 63773075309887 xsnd_val))))))))) λxlsh (Src 63773092087266 (Let "rsh" (Src 63773102572934 (Lam "fst_val" λxfst_val (Src 63773113058694 (Lam "snd_val" λxsnd_val (Src 63773123544454 (App (Src 63773124593007 (Book.Kind.num)) (Src 63773134030213 (Op2 RSH (Src 63773139273084 xfst_val) (Src 63773147661700 xsnd_val))))))))) λxrsh (Src 63773164439010 (App (App (Src 63773165487569 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 63773166536083 (Ins (Src 63773167584659 xopr))) (Src 63773171778965 xP)) (Src 63773173876121 xadd)) (Src 63773178070429 xmul)) (Src 63773182264737 xsub)) (Src 63773186459045 xdiv)) (Src 63773190653353 xmod)) (Src 63773194847660 xeq)) (Src 63773197993391 xne)) (Src 63773201139122 xlt)) (Src 63773204284853 xgt)) (Src 63773207430585 xlte)) (Src 63773211624893 xgte)) (Src 63773215819201 xand)) (Src 63773220013508 xor)) (Src 63773223159240 xxor)) (Src 63773227353548 xlsh)) (Src 63773231547856 xrsh))) (Src 63773236790745 xfst_val)) (Src 63773245179361 xsnd_val))))))))))))))))))))))))))))))))))))))))) λxY (Src 63773258810952 (Let "N" (Src 63773267199524 (Lam "snd" λxsnd (Src 63773273490980 (Lam "fst_val" λxfst_val (Src 63773283976740 (App (App (App (Src 63773285025288 (Book.Kind.op2)) (Src 63773294462476 xopr)) (Src 63773298656799 (App (Src 63773299705366 (Book.Kind.num)) (Src 63773309142558 xfst_val)))) (Src 63773318579747 xsnd))))))) λxN (Src 63773328016968 (App (App (App (App (App (Src 63773329065525 (Book.Kind.if.num)) (Src 63773341648441 xsnd)) (Src 63773345842747 xP)) (Src 63773347939901 xY)) (Src 63773350037055 xN)) (Src 63773352134215 xfst_val))))))))))))) λxY (Src 63773363668627 (Let "N" (Src 63773372057205 (Lam "fst" λxfst (Src 63773378348661 (Lam "snd" λxsnd (Src 63773384640117 (App (App (App (Src 63773385688680 (Book.Kind.op2)) (Src 63773395125868 xopr)) (Src 63773399320176 xfst)) (Src 63773403514484 xsnd))))))) λxN (Src 63773410854547 (App (App (App (App (App (Src 63773411903108 (Book.Kind.if.num)) (Src 63773424486024 xfst)) (Src 63773428680330 xP)) (Src 63773430777484 xY)) (Src 63773432874638 xN)) (Src 63773434971794 xsnd))))))))))))))) (Src 63771693285469 (All "opr" (Src 63771702722596 (Book.Kind.Oper)) λxopr (Src 63771716354141 (All "fst" (Src 63771725791290 (Book.Kind.Term)) λxfst (Src 63771739422813 (All "snd" (Src 63771748859984 (Book.Kind.Term)) λxsnd (Src 63771762491485 (Book.Kind.Term)))))))))) -Book.Kind.reduce.ref = (Ref "Kind.reduce.ref" [] (Ann (Src 64871278313743 (Lam "maj" λxmaj (Src 64871284605199 (Lam "nam" λxnam (Src 64871290896655 (Lam "val" λxval (Src 64871299285263 (Let "P" (Src 64871311868074 (Lam "x" λxx (Src 64871316062378 (All "nam" (Src 64871325499531 (Book.String)) λxnam (Src 64871333888170 (All "val" (Src 64871343325343 (Book.Kind.Term)) λxval (Src 64871354859690 (Book.Kind.Term)))))))) λxP (Src 64871367442703 (Let "true" (Src 64871380025562 (Lam "nam" λxnam (Src 64871386317018 (Lam "val" λxval (Src 64871392608474 (App (App (Src 64871393657041 (Book.Kind.reduce)) (Src 64871406239957 xmaj)) (Src 64871410434265 xval))))))) λxtrue (Src 64871417774351 (Let "false" (Src 64871430357233 (Book.Kind.ref)) λxfalse (Src 64871441891599 (App (App (App (App (App (Src 64871442940153 (Ins (Src 64871443988729 xmaj))) (Src 64871448183035 xP)) (Src 64871450280192 xtrue)) (Src 64871455523078 xfalse)) (Src 64871461814538 xnam)) (Src 64871466008846 xval))))))))))))))) (Src 64871204913237 (All "maj" (Src 64871214350367 (Book.Bool)) λxmaj (Src 64871222739029 (All "nam" (Src 64871232176178 (Book.String)) λxnam (Src 64871242661973 (All "val" (Src 64871252099144 (Book.Kind.Term)) λxval (Src 64871265730645 (Book.Kind.Term)))))))))) -Book.Kind.reduce.txt = (Ref "Kind.reduce.txt" [] (Ann (Src 65970752192791 (Lam "txt" λxtxt (Src 65970760581399 (Let "P" (Src 65970772115540 (Lam "x" λxx (Src 65970776309844 (Book.Kind.Term)))) λxP (Src 65970788892951 (Let "cons" (Src 65970800427209 (Lam "x" λxx (Src 65970804621513 (Lam "xs" λxxs (Src 65970809864393 (App (App (Src 65970810912887 (Book.Kind.reduce)) (Src 65970823495809 (Book.Bool.true))) (Src 65970833981640 (App (App (Src 65970835030155 (Book.Kind.app)) (Src 65970844467385 (App (App (Src 65970845515925 (Book.Kind.app)) (Src 65970854953131 (Book.Kind.Book.String.cons))) (Src 65970878021816 (App (Src 65970879070389 (Book.Kind.num)) (Src 65970888507575 xx)))))) (Src 65970892701895 (App (Src 65970893750467 (Book.Kind.txt)) (Src 65970903187654 xxs))))))))))) λxcons (Src 65970911576343 (Let "nil" (Src 65970923110659 (App (App (Src 65970924159203 (Book.Kind.reduce)) (Src 65970936742125 (Book.Bool.true))) (Src 65970947227906 (Book.Kind.Book.String.nil)))) λxnil (Src 65970972393751 (App (App (App (Src 65970973442315 (Ins (Src 65970974490891 xtxt))) (Src 65970978685197 xP)) (Src 65970980782354 xcons)) (Src 65970986025238 xnil))))))))))) (Src 65970716540977 (All "txt" (Src 65970725978148 (Book.Kind.Text)) λxtxt (Src 65970739609649 (Book.Kind.Term)))))) -Book.Kind.ref = (Ref "Kind.ref" [] (Ann (Src 39582485708994 (Lam "nam" λxnam (Src 39582492000450 (Lam "val" λxval (Src 39582500389058 (Ins (Src 39582501437634 (Lam "P" λxP (Src 39582505631938 (Lam "all" λxall (Src 39582511923394 (Lam "lam" λxlam (Src 39582518214850 (Lam "app" λxapp (Src 39582524506306 (Lam "ann" λxann (Src 39582530797762 (Lam "slf" λxslf (Src 39582537089218 (Lam "ins" λxins (Src 39582543380674 (Lam "ref" λxref (Src 39582549672130 (Lam "def" λxdef (Src 39582555963586 (Lam "set" λxset (Src 39582562255042 (Lam "u60" λxu60 (Src 39582568546498 (Lam "num" λxnum (Src 39582574837954 (Lam "op2" λxop2 (Src 39582581129410 (Lam "mat" λxmat (Src 39582587420866 (Lam "txt" λxtxt (Src 39582593712322 (Lam "hol" λxhol (Src 39582600003778 (Lam "var" λxvar (Src 39582608392386 (App (App (Src 39582609440953 xref) (Src 39582613635261 xnam)) (Src 39582617829569 xval))))))))))))))))))))))))))))))))))))))))))) (Src 39582430134333 (All "nam" (Src 39582439571482 (Book.String)) λxnam (Src 39582450057277 (All "val" (Src 39582459494448 (Book.Kind.Term)) λxval (Src 39582473125949 (Book.Kind.Term)))))))) -Book.Kind.report = (Ref "Kind.report" [] (Ann (Src 98956196446779 (Lam "e" λxe (Src 98956200641083 (Lam "inferred" λxinferred (Src 98956212175419 (Lam "expected" λxexpected (Src 98956223709755 (Lam "value" λxvalue (Src 98956232098363 (Lam "dep" λxdep (Src 98956240486971 (Let "pure" (Src 98956253069531 (App (Src 98956254118096 (Book.Maybe.some)) (Src 98956265652442 (Book.Kind.Term)))) λxpure (Src 98956280332859 (Let "none" (Src 98956292915457 (App (Src 98956293964022 (Book.Maybe.none)) (Src 98956305498368 (Book.Kind.Term)))) λxnone (Src 98956319130171 (Let "P" (Src 98956331712891 (Lam "x" λxx (Src 98956335907195 (All "inferred" (Src 98956350587179 (Book.Kind.Term)) λxinferred (Src 98956362121595 (All "expected" (Src 98956376801604 (Book.Kind.Term)) λxexpected (Src 98956388335995 (All "value" (Src 98956399870298 (Book.Kind.Term)) λxvalue (Src 98956411404667 (All "dep" (Src 98956420841832 (Book.Nat)) λxdep (Src 98956426084731 (App (Src 98956427133296 (Book.Maybe)) (Src 98956433424762 (Book.Kind.Term)))))))))))))) λxP (Src 98956447056443 (Let "true" (Src 98956459639229 (Lam "inferred" λxinferred (Src 98956471173565 (Lam "expected" λxexpected (Src 98956482707901 (Lam "value" λxvalue (Src 98956491096509 (Lam "dep" λxdep (Src 98956497387965 (App (Src 98956498436531 xpure) (Src 98956503679420 (Book.Kind.set)))))))))))) λxtrue (Src 98956516262459 (Let "false" (Src 98956528845300 (Lam "inferred" λxinferred (Src 98956540379636 (Lam "expected" λxexpected (Src 98956551913972 (Lam "value" λxvalue (Src 98956560302580 (Lam "dep" λxdep (Src 98956566594036 xnone))))))))) λxfalse (Src 98956598051387 (App (App (App (App (App (App (App (Src 98956599099921 (Ins (Src 98956600148497 xe))) (Src 98956602245651 xP)) (Src 98956604342808 xtrue)) (Src 98956609585694 xfalse)) (Src 98956615877159 xinferred)) (Src 98956625314352 xexpected)) (Src 98956634751542 xvalue)) (Src 98956641043002 xdep))))))))))))))))))))))) (Src 98956061180044 (All "e" (Src 98956068519961 (Book.Bool)) λxe (Src 98956076908684 (All "inferred" (Src 98956091588660 (Book.Kind.Term)) λxinferred (Src 98956105220236 (All "expected" (Src 98956119900239 (Book.Kind.Term)) λxexpected (Src 98956133531788 (All "value" (Src 98956145066087 (Book.Kind.Term)) λxvalue (Src 98956158697612 (All "dep" (Src 98956168134775 (Book.Nat)) λxdep (Src 98956175474828 (App (Src 98956176523393 (Book.Maybe)) (Src 98956182814859 (Book.Kind.Term)))))))))))))))) -Book.Kind.set = (Ref "Kind.set" [] (Ann (Src 40681954345091 (Ins (Src 40681955393667 (Lam "P" λxP (Src 40681959587971 (Lam "all" λxall (Src 40681965879427 (Lam "lam" λxlam (Src 40681972170883 (Lam "app" λxapp (Src 40681978462339 (Lam "ann" λxann (Src 40681984753795 (Lam "slf" λxslf (Src 40681991045251 (Lam "ins" λxins (Src 40681997336707 (Lam "ref" λxref (Src 40682003628163 (Lam "def" λxdef (Src 40682009919619 (Lam "set" λxset (Src 40682016211075 (Lam "u60" λxu60 (Src 40682022502531 (Lam "num" λxnum (Src 40682028793987 (Lam "op2" λxop2 (Src 40682035085443 (Lam "mat" λxmat (Src 40682041376899 (Lam "txt" λxtxt (Src 40682047668355 (Lam "hol" λxhol (Src 40682053959811 (Lam "var" λxvar (Src 40682062348419 (Src 40682063396994 xset)))))))))))))))))))))))))))))))))))))) (Src 40681941762068 (Book.Kind.Term)))) -Book.Kind.skip = (Ref "Kind.skip" [] (Ann (Src 93458534498849 (Lam "x" λxx (Src 93458540790305 (Let "P" (Src 93458551275593 (Lam "x" λxx (Src 93458555469897 (Book.Kind.Term)))) λxP (Src 93458568053281 (Let "all" (Src 93458578538590 (Book.Kind.all)) λxall (Src 93458590073377 (Let "lam" (Src 93458600558707 (Book.Kind.lam)) λxlam (Src 93458612093473 (Let "app" (Src 93458622578824 (Book.Kind.app)) λxapp (Src 93458634113569 (Let "ann" (Src 93458644598960 (Lam "val" λxval (Src 93458650890416 (Lam "typ" λxtyp (Src 93458657181872 (App (Src 93458658230443 (Book.Kind.skip)) (Src 93458668716207 xval))))))) λxann (Src 93458676056609 (Let "slf" (Src 93458686542021 (Book.Kind.slf)) λxslf (Src 93458698076705 (Let "ins" (Src 93458708562151 (Lam "val" λxval (Src 93458714853607 (App (Src 93458715902178 (Book.Kind.skip)) (Src 93458726387942 xval))))) λxins (Src 93458733728289 (Let "ref" (Src 93458744213756 (Book.Kind.ref)) λxref (Src 93458755748385 (Let "def" (Src 93458766233904 (Lam "nam" λxnam (Src 93458772525360 (Lam "val" λxval (Src 93458778816816 (Lam "bod" λxbod (Src 93458785108272 (App (Src 93458786156837 (Book.Kind.skip)) (Src 93458796642607 (App (Src 93458797691178 xbod) (Src 93458801885486 xval))))))))))) λxdef (Src 93458810274337 (Let "set" (Src 93458820759877 (Book.Kind.set)) λxset (Src 93458832294433 (Let "u60" (Src 93458842779994 (Book.Kind.u60)) λxu60 (Src 93458854314529 (Let "num" (Src 93458864800111 (Book.Kind.num)) λxnum (Src 93458876334625 (Let "op2" (Src 93458886820228 (Book.Kind.op2)) λxop2 (Src 93458898354721 (Let "mat" (Src 93458908840345 (Book.Kind.mat)) λxmat (Src 93458920374817 (Let "txt" (Src 93458930860462 (Book.Kind.txt)) λxtxt (Src 93458942394913 (Let "hol" (Src 93458952880579 (Book.Kind.hol)) λxhol (Src 93458964415009 (Let "var" (Src 93458974900696 (Book.Kind.var)) λxvar (Src 93458986435105 (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (App (Src 93458987483614 (Ins (Src 93458988532190 xx))) (Src 93458990629344 xP)) (Src 93458992726500 xall)) (Src 93458996920808 xlam)) (Src 93459001115116 xapp)) (Src 93459005309424 xann)) (Src 93459009503732 xslf)) (Src 93459013698040 xins)) (Src 93459017892348 xref)) (Src 93459022086656 xdef)) (Src 93459026280964 xset)) (Src 93459030475272 xu60)) (Src 93459034669580 xnum)) (Src 93459038863888 xop2)) (Src 93459043058196 xmat)) (Src 93459047252504 xtxt)) (Src 93459051446812 xhol)) (Src 93459055641120 xvar))))))))))))))))))))))))))))))))))))))) (Src 93458500943913 (All "x" (Src 93458508283932 (Book.Kind.Term)) λxx (Src 93458521915433 (Book.Kind.Term)))))) -Book.Kind.slf = (Ref "Kind.slf" [] (Ann (Src 41781527838932 (Lam "nam" λxnam (Src 41781534130388 (Lam "bod" λxbod (Src 41781542518996 (Ins (Src 41781543567572 (Lam "P" λxP (Src 41781547761876 (Lam "all" λxall (Src 41781554053332 (Lam "lam" λxlam (Src 41781560344788 (Lam "app" λxapp (Src 41781566636244 (Lam "ann" λxann (Src 41781572927700 (Lam "slf" λxslf (Src 41781579219156 (Lam "ins" λxins (Src 41781585510612 (Lam "ref" λxref (Src 41781591802068 (Lam "def" λxdef (Src 41781598093524 (Lam "set" λxset (Src 41781604384980 (Lam "u60" λxu60 (Src 41781610676436 (Lam "num" λxnum (Src 41781616967892 (Lam "op2" λxop2 (Src 41781623259348 (Lam "mat" λxmat (Src 41781629550804 (Lam "txt" λxtxt (Src 41781635842260 (Lam "hol" λxhol (Src 41781642133716 (Lam "var" λxvar (Src 41781650522324 (App (App (Src 41781651570891 xslf) (Src 41781655765199 xnam)) (Src 41781659959507 xbod))))))))))))))))))))))))))))))))))))))))))) (Src 41781453389903 (All "nam" (Src 41781462827034 (Book.String)) λxnam (Src 41781473312847 (All "bod" (Src 41781482750018 (All "x" (Src 41781490090039 (Book.Kind.Term)) λxx (Src 41781501624386 (Book.Kind.Term)))) λxbod (Src 41781515255887 (Book.Kind.Term)))))))) -Book.Kind.txt = (Ref "Kind.txt" [] (Ann (Src 42881000669349 (Lam "lit" λxlit (Src 42881009057957 (Ins (Src 42881010106533 (Lam "P" λxP (Src 42881014300837 (Lam "all" λxall (Src 42881020592293 (Lam "lam" λxlam (Src 42881026883749 (Lam "app" λxapp (Src 42881033175205 (Lam "ann" λxann (Src 42881039466661 (Lam "slf" λxslf (Src 42881045758117 (Lam "ins" λxins (Src 42881052049573 (Lam "ref" λxref (Src 42881058341029 (Lam "def" λxdef (Src 42881064632485 (Lam "set" λxset (Src 42881070923941 (Lam "u60" λxu60 (Src 42881077215397 (Lam "num" λxnum (Src 42881083506853 (Lam "op2" λxop2 (Src 42881089798309 (Lam "mat" λxmat (Src 42881096089765 (Lam "txt" λxtxt (Src 42881102381221 (Lam "hol" λxhol (Src 42881108672677 (Lam "var" λxvar (Src 42881117061285 (App (Src 42881118109856 xtxt) (Src 42881122304164 xlit))))))))))))))))))))))))))))))))))))))))) (Src 42880965017642 (All "lit" (Src 42880974454813 (Book.Kind.Text)) λxlit (Src 42880988086314 (Book.Kind.Term)))))) -Book.Kind.u60 = (Ref "Kind.u60" [] (Ann (Src 43980489228417 (Ins (Src 43980490276993 (Lam "P" λxP (Src 43980494471297 (Lam "all" λxall (Src 43980500762753 (Lam "lam" λxlam (Src 43980507054209 (Lam "app" λxapp (Src 43980513345665 (Lam "ann" λxann (Src 43980519637121 (Lam "slf" λxslf (Src 43980525928577 (Lam "ins" λxins (Src 43980532220033 (Lam "ref" λxref (Src 43980538511489 (Lam "def" λxdef (Src 43980544802945 (Lam "set" λxset (Src 43980551094401 (Lam "u60" λxu60 (Src 43980557385857 (Lam "num" λxnum (Src 43980563677313 (Lam "op2" λxop2 (Src 43980569968769 (Lam "mat" λxmat (Src 43980576260225 (Lam "txt" λxtxt (Src 43980582551681 (Lam "hol" λxhol (Src 43980588843137 (Lam "var" λxvar (Src 43980597231745 xu60))))))))))))))))))))))))))))))))))))) (Src 43980476645396 (Book.Kind.Term)))) -Book.Kind.var = (Ref "Kind.var" [] (Ann (Src 45080037556412 (Lam "nam" λxnam (Src 45080043847868 (Lam "idx" λxidx (Src 45080052236476 (Ins (Src 45080053285052 (Lam "P" λxP (Src 45080057479356 (Lam "all" λxall (Src 45080063770812 (Lam "lam" λxlam (Src 45080070062268 (Lam "app" λxapp (Src 45080076353724 (Lam "ann" λxann (Src 45080082645180 (Lam "slf" λxslf (Src 45080088936636 (Lam "ins" λxins (Src 45080095228092 (Lam "ref" λxref (Src 45080101519548 (Lam "def" λxdef (Src 45080107811004 (Lam "set" λxset (Src 45080114102460 (Lam "u60" λxu60 (Src 45080120393916 (Lam "num" λxnum (Src 45080126685372 (Lam "op2" λxop2 (Src 45080132976828 (Lam "mat" λxmat (Src 45080139268284 (Lam "txt" λxtxt (Src 45080145559740 (Lam "hol" λxhol (Src 45080151851196 (Lam "var" λxvar (Src 45080160239804 (App (App (Src 45080161288371 xvar) (Src 45080165482679 xnam)) (Src 45080169676987 xidx))))))))))))))))))))))))))))))))))))))))))) (Src 45079988273207 (All "nam" (Src 45079997710362 (Book.String)) λxnam (Src 45080008196151 (All "idx" (Src 45080017633322 (Book.Nat)) λxidx (Src 45080024973367 (Book.Kind.Term)))))))) -Book.Kind.verify = (Ref "Kind.verify" [] (Ann (Src 75866402980177 (Lam "term" λxterm (Src 75866410320209 (Lam "type" λxtype (Src 75866417660241 (Lam "dep" λxdep (Src 75866426048849 (Let "bind" (Src 75866437583009 (App (App (Src 75866438631564 (Book.Maybe.bind)) (Src 75866450165910 (Book.Kind.Term))) (Src 75866460651680 (Book.Kind.Term)))) λxbind (Src 75866474283345 (Let "pure" (Src 75866485817541 (App (Src 75866486866106 (Book.Maybe.some)) (Src 75866498400452 (Book.Kind.Term)))) λxpure (Src 75866513080657 (Let "none" (Src 75866524614890 (App (Src 75866525663455 (Book.Maybe.none)) (Src 75866537197801 (Book.Kind.Term)))) λxnone (Src 75866550829393 (App (App (Src 75866551877874 xbind) (Src 75866557120776 (App (App (Src 75866558169342 (Book.Kind.infer)) (Src 75866569703683 xterm)) (Src 75866574946567 xdep)))) (Src 75866580189520 (Lam "infer" λxinfer (Src 75866590675280 (App (App (App (App (App (Src 75866591723807 (Book.Kind.report)) (Src 75866604306747 (App (App (App (Src 75866605355307 (Book.Kind.equal)) (Src 75866616889649 xinfer)) (Src 75866623181110 xtype)) (Src 75866628423994 xdep)))) (Src 75866633666881 xinfer)) (Src 75866639958342 xtype)) (Src 75866645201227 xterm)) (Src 75866650444111 xdep))))))))))))))))))) (Src 75866316996701 (All "term" (Src 75866327482401 (Book.Kind.Term)) λxterm (Src 75866341113949 (All "type" (Src 75866351599672 (Book.Kind.Term)) λxtype (Src 75866365231197 (All "dep" (Src 75866374668360 (Book.Nat)) λxdep (Src 75866382008413 (App (Src 75866383056978 (Book.Maybe)) (Src 75866389348444 (Book.Kind.Term)))))))))))) -Book.List = (Ref "List" [] (Ann (Src 26388303184062 (Lam "T" λxT (Src 26388309475518 (Slf "self" (Src 26388317863981 (App (Src 26388318912554 (Book.List)) (Src 26388324155436 xT))) λxself (Src 26388330447038 (All "P" (Src 26388337786955 (All "xs" (Src 26388346175560 (App (Src 26388347224133 (Book.List)) (Src 26388352467015 xT))) λxxs (Src 26388356661323 (Set)))) λxP (Src 26388361904318 (All "cons" (Src 26388372390037 (All "head" (Src 26388382875748 xT) λxhead (Src 26388386021525 (All "tail" (Src 26388396507256 (App (Src 26388397555829 (Book.List)) (Src 26388402798711 xT))) λxtail (Src 26388406993045 (App (Src 26388408041596 xP) (Src 26388410138772 (App (App (App (Src 26388411187335 (Book.List.cons)) (Src 26388421673097 xT)) (Src 26388423770254 xhead)) (Src 26388429013139 xtail))))))))) λxcons (Src 26388439498942 (All "nil" (Src 26388448936114 (App (Src 26388449984676 xP) (Src 26388452081841 (App (Src 26388453130414 (Book.List.nil)) (Src 26388462567600 xT))))) λxnil (Src 26388469907646 (App (Src 26388470956216 xP) (Src 26388473053373 xself))))))))))))) (Src 26388286406676 (All "T" (Src 26388293746703 (Set)) λxT (Src 26388298989588 (Set)))))) -Book.List.concat = (Ref "List.concat" [] (Ann (Src 74766871429373 (Lam "T" λxT (Src 74766875623677 (Lam "xs" λxxs (Src 74766880866557 (Lam "ys" λxys (Src 74766888206589 (Let "P" (Src 74766899740807 (Lam "xs" λxxs (Src 74766904983687 (All "ys" (Src 74766913372285 (App (Src 74766914420858 (Book.List)) (Src 74766919663740 xT))) λxys (Src 74766923858055 (App (Src 74766924906628 (Book.List)) (Src 74766930149510 xT))))))) λxP (Src 74766935392509 (Let "cons" (Src 74766946926802 (Lam "head" λxhead (Src 74766954266834 (Lam "tail" λxtail (Src 74766961606866 (Lam "ys" λxys (Src 74766966849746 (App (App (App (Src 74766967898290 (Book.List.cons)) (Src 74766978384052 xT)) (Src 74766980481209 xhead)) (Src 74766985724113 (App (App (App (Src 74766986772678 (Book.List.concat)) (Src 74766999355592 xT)) (Src 74767001452749 xtail)) (Src 74767006695632 xys))))))))))) λxcons (Src 74767014035709 (Let "nil" (Src 74767025570023 (Lam "ys" λxys (Src 74767030812903 xys))) λxnil (Src 74767036055805 (App (App (App (App (Src 74767037104366 (Ins (Src 74767038152942 xxs))) (Src 74767041298672 xP)) (Src 74767043395829 xcons)) (Src 74767048638713 xnil)) (Src 74767052833020 xys))))))))))))))) (Src 74766805368906 (All "T" (Src 74766812708886 (Set)) λxT (Src 74766817951818 (All "xs" (Src 74766826340394 (App (Src 74766827388967 (Book.List)) (Src 74766832631849 xT))) λxxs (Src 74766838923338 (All "ys" (Src 74766847311934 (App (Src 74766848360507 (Book.List)) (Src 74766853603389 xT))) λxys (Src 74766859894858 (App (Src 74766860943431 (Book.List)) (Src 74766866186313 xT))))))))))) -Book.List.cons = (Ref "List.cons" [] (Ann (Src 27487866192000 (Lam "T" λxT (Src 27487870386304 (Lam "head" λxhead (Src 27487877726336 (Lam "tail" λxtail (Src 27487887163520 (Ins (Src 27487888212096 (Lam "P" λxP (Src 27487892406400 (Lam "cons" λxcons (Src 27487899746432 (Lam "nil" λxnil (Src 27487908135040 (App (App (Src 27487909183605 xcons) (Src 27487914426490 xhead)) (Src 27487919669375 xtail))))))))))))))))) (Src 27487803277381 (All "T" (Src 27487810617364 (Set)) λxT (Src 27487815860293 (All "head" (Src 27487826346019 xT) λxhead (Src 27487831588933 (All "tail" (Src 27487842074681 (App (Src 27487843123254 (Book.List)) (Src 27487848366136 xT))) λxtail (Src 27487854657605 (App (Src 27487855706178 (Book.List)) (Src 27487860949060 xT))))))))))) -Book.List.nil = (Ref "List.nil" [] (Ann (Src 28587337973823 (Lam "T" λxT (Src 28587344265279 (Ins (Src 28587345313855 (Lam "P" λxP (Src 28587349508159 (Lam "cons" λxcons (Src 28587356848191 (Lam "nil" λxnil (Src 28587365236799 xnil))))))))))) (Src 28587313856543 (All "T" (Src 28587321196563 (Set)) λxT (Src 28587326439455 (App (Src 28587327488028 (Book.List)) (Src 28587332730910 xT))))))) -Book.Maybe = (Ref "Maybe" [] (Ann (Src 69269257715885 (Lam "T" λxT (Src 69269264007341 (Slf "self" (Src 69269272395823 (App (Src 69269273444396 (Book.Maybe)) (Src 69269279735854 xT))) λxself (Src 69269286027437 (All "P" (Src 69269293367373 (All "x" (Src 69269300707402 (App (Src 69269301755975 (Book.Maybe)) (Src 69269308047433 xT))) λxx (Src 69269312241741 (Set)))) λxP (Src 69269317484717 (All "some" (Src 69269327970433 (All "value" (Src 69269339504743 xT) λxvalue (Src 69269342650497 (App (Src 69269343699051 xP) (Src 69269345796224 (App (App (Src 69269346844791 (Book.Maybe.some)) (Src 69269358379129 xT)) (Src 69269360476287 xvalue))))))) λxsome (Src 69269372010669 (All "none" (Src 69269382496417 (App (Src 69269383544977 xP) (Src 69269385642144 (App (Src 69269386690717 (Book.Maybe.none)) (Src 69269398225055 xT))))) λxnone (Src 69269405565101 (App (Src 69269406613671 xP) (Src 69269408710828 xself))))))))))))) (Src 69269240938517 (All "T" (Src 69269248278544 (Set)) λxT (Src 69269253521429 (Set)))))) -Book.Maybe.bind = (Ref "Maybe.bind" [] (Ann (Src 72567871242501 (Lam "A" λxA (Src 72567875436805 (Lam "B" λxB (Src 72567879631109 (Lam "a" λxa (Src 72567883825413 (Lam "b" λxb (Src 72567890116869 (Let "P" (Src 72567901651113 (Lam "x" λxx (Src 72567905845417 (All "b" (Src 72567913185438 (All "x" (Src 72567920525459 xA) λxx (Src 72567923671198 (App (Src 72567924719771 (Book.Maybe)) (Src 72567931011229 xB))))) λxb (Src 72567935205545 (App (Src 72567936254118 (Book.Maybe)) (Src 72567942545576 xB))))))) λxP (Src 72567947788549 (Let "some" (Src 72567959322832 (Lam "a.value" λxa.value (Src 72567969808592 (Lam "b" λxb (Src 72567974002896 (App (Src 72567975051463 xb) (Src 72567977148623 xa.value))))))) λxsome (Src 72567988683013 (Let "none" (Src 72568000217328 (Lam "b" λxb (Src 72568004411632 (App (Src 72568005460205 (Book.Maybe.none)) (Src 72568016994543 xB))))) λxnone (Src 72568022237445 (App (App (App (App (Src 72568023286006 (Ins (Src 72568024334582 xa))) (Src 72568026431736 xP)) (Src 72568028528893 xsome)) (Src 72568033771778 xnone)) (Src 72568039014660 xb))))))))))))))))) (Src 72567781064800 (All "A" (Src 72567788404757 (Set)) λxA (Src 72567793647712 (All "B" (Src 72567800987681 (Set)) λxB (Src 72567806230624 (All "a" (Src 72567813570613 (App (Src 72567814619186 (Book.Maybe)) (Src 72567820910644 xA))) λxa (Src 72567827202144 (All "b" (Src 72567834542163 (All "x" (Src 72567841882184 xA) λxx (Src 72567845027923 (App (Src 72567846076496 (Book.Maybe)) (Src 72567852367954 xB))))) λxb (Src 72567858659424 (App (Src 72567859707997 (Book.Maybe)) (Src 72567865999455 xB))))))))))))) -Book.Maybe.none = (Ref "Maybe.none" [] (Ann (Src 70368784023621 (Lam "T" λxT (Src 70368790315077 (Ins (Src 70368791363653 (Lam "P" λxP (Src 70368795557957 (Lam "some" λxsome (Src 70368802897989 (Lam "none" λxnone (Src 70368812335173 xnone))))))))))) (Src 70368757809186 (All "T" (Src 70368765149205 (Set)) λxT (Src 70368770392098 (App (Src 70368771440671 (Book.Maybe)) (Src 70368777732129 xT))))))) -Book.Maybe.some = (Ref "Maybe.some" [] (Ann (Src 71468312428645 (Lam "T" λxT (Src 71468316622949 (Lam "value" λxvalue (Src 71468327108709 (Ins (Src 71468328157285 (Lam "P" λxP (Src 71468332351589 (Lam "some" λxsome (Src 71468339691621 (Lam "none" λxnone (Src 71468349128805 (App (Src 71468350177374 xsome) (Src 71468355420260 xvalue))))))))))))))) (Src 71468269436978 (All "T" (Src 71468276776981 (Set)) λxT (Src 71468282019890 (All "value" (Src 71468293554213 xT) λxvalue (Src 71468298797106 (App (Src 71468299845679 (Book.Maybe)) (Src 71468306137137 xT))))))))) -Book.Nat = (Ref "Nat" [] (Ann (Src 46179498852477 (Slf "self" (Src 46179507240981 (Book.Nat)) λxself (Src 46179514581117 (All "P" (Src 46179521921069 (All "n" (Src 46179529261098 (Book.Nat)) λxn (Src 46179534503981 (Set)))) λxP (Src 46179539746941 (All "succ" (Src 46179550232663 (All "n" (Src 46179557572677 (Book.Nat)) λxn (Src 46179562815575 (App (Src 46179563864137 xP) (Src 46179565961302 (App (Src 46179567009875 (Book.Nat.succ)) (Src 46179576447061 xn))))))) λxsucc (Src 46179583787133 (All "zero" (Src 46179594272881 (App (Src 46179595321447 xP) (Src 46179597418608 (Book.Nat.zero)))) λxzero (Src 46179611050109 (App (Src 46179612098679 xP) (Src 46179614195836 xself))))))))))) (Src 46179494658055 (Set)))) -Book.Nat.equal = (Ref "Nat.equal" [] (Ann (Src 94558049272232 (Lam "a" λxa (Src 94558053466536 (Lam "b" λxb (Src 94558059757992 (Let "P" (Src 94558071291994 (Lam "x" λxx (Src 94558075486298 (All "b" (Src 94558082826322 (Book.Nat)) λxb (Src 94558088069210 (Src 94558089117785 (Book.Bool))))))) λxP (Src 94558097506728 (Let "succ" (Src 94558109040921 (Lam "a.pred" λxa.pred (Src 94558118478105 (Lam "b" λxb (Src 94558126866713 (Let "P" (Src 94558138400927 (Lam "x" λxx (Src 94558142595231 (All "a.pred" (Src 94558155178135 (Book.Nat)) λxa.pred (Src 94558160421023 (Src 94558161469598 (Book.Bool))))))) λxP (Src 94558171955481 (Let "succ" (Src 94558183489754 (Lam "b.pred" λxb.pred (Src 94558192926938 (Lam "a.pred" λxa.pred (Src 94558202364122 (App (App (Src 94558203412683 (Book.Nat.equal)) (Src 94558213898450 xa.pred)) (Src 94558221238489 xb.pred))))))) λxsucc (Src 94558233821465 (Let "zero" (Src 94558245355773 (Lam "a.pred" λxa.pred (Src 94558254792957 (Book.Bool.false)))) λxzero (Src 94558270521625 (App (App (App (App (Src 94558271570181 (Ins (Src 94558272618757 xb))) (Src 94558274715911 xP)) (Src 94558276813068 xsucc)) (Src 94558282055953 xzero)) (Src 94558287298840 xa.pred))))))))))))) λxsucc (Src 94558297784744 (Let "zero" (Src 94558309319059 (Lam "b" λxb (Src 94558317707667 (Let "P" (Src 94558329241922 (Lam "x" λxx (Src 94558333436226 (Book.Bool)))) λxP (Src 94558342873491 (Let "succ" (Src 94558354407781 (Lam "b.pred" λxb.pred (Src 94558363844965 (Book.Bool.false)))) λxsucc (Src 94558379573651 (Let "zero" (Src 94558391107966 (Book.Bool.true)) λxzero (Src 94558405788051 (App (App (App (Src 94558406836614 (Ins (Src 94558407885190 xb))) (Src 94558409982344 xP)) (Src 94558412079501 xsucc)) (Src 94558417322386 xzero))))))))))) λxzero (Src 94558425711016 (App (App (App (App (Src 94558426759577 (Ins (Src 94558427808153 xa))) (Src 94558429905307 xP)) (Src 94558432002464 xsucc)) (Src 94558437245349 xzero)) (Src 94558442488231 xb))))))))))))) (Src 94558012571692 (All "a" (Src 94558019911702 (Book.Nat)) λxa (Src 94558027251756 (All "b" (Src 94558034591780 (Book.Nat)) λxb (Src 94558041931820 (Book.Bool)))))))) -Book.Nat.succ = (Ref "Nat.succ" [] (Ann (Src 47279030403136 (Lam "n" λxn (Src 47279036694592 (Ins (Src 47279037743168 (Lam "P" λxP (Src 47279041937472 (Lam "succ" λxsucc (Src 47279049277504 (Lam "zero" λxzero (Src 47279058714688 (App (Src 47279059763261 xsucc) (Src 47279065006143 xn))))))))))))) (Src 47279011528730 (All "n" (Src 47279018868757 (Book.Nat)) λxn (Src 47279024111642 (Book.Nat)))))) -Book.Nat.zero = (Ref "Nat.zero" [] (Ann (Src 48378529447978 (Ins (Src 48378530496554 (Lam "P" λxP (Src 48378534690858 (Lam "succ" λxsucc (Src 48378542030890 (Lam "zero" λxzero (Src 48378551468074 xzero))))))))) (Src 48378523156494 (Book.Nat)))) -Book.String = (Ref "String" [] (Ann (Src 24189269442584 (App (Src 24189270491154 (Book.List)) (Src 24189275734039 (Book.Char)))) (Src 24189265248266 (Set)))) -Book.String.concat = (Ref "String.concat" [] (Ann (Src 73667343024207 (App (Src 73667344072777 (Book.List.concat)) (Src 73667356655694 (Book.Char)))) (Src 73667295838266 (All "xs" (Src 73667304226846 (Book.String)) λxxs (Src 73667314712634 (All "ys" (Src 73667323101232 (Book.String)) λxys (Src 73667333587002 (Book.String)))))))) -Book.String.cons = (Ref "String.cons" [] (Ann (Src 100055622090865 (Lam "head" λxhead (Src 100055629430897 (Lam "tail" λxtail (Src 100055638868081 (Ins (Src 100055639916657 (Lam "P" λxP (Src 100055644110961 (Lam "cons" λxcons (Src 100055651450993 (Lam "nil" λxnil (Src 100055659839601 (App (App (Src 100055660888166 xcons) (Src 100055666131051 xhead)) (Src 100055671373936 xtail))))))))))))))) (Src 100055572807738 (All "head" (Src 100055583293468 (Book.Char)) λxhead (Src 100055591682106 (All "tail" (Src 100055602167856 (Book.String)) λxtail (Src 100055612653626 (Book.String)))))))) -Book.String.equal = (Ref "String.equal" [] (Ann (Src 95657570337314 (Lam "a" λxa (Src 95657574531618 (Lam "b" λxb (Src 95657580823074 (Let "P" (Src 95657592356966 (Lam "x" λxx (Src 95657596551270 (All "b" (Src 95657603891294 (Book.String)) λxb (Src 95657612279910 (Src 95657613328485 (Book.Bool))))))) λxP (Src 95657621717538 (Let "cons" (Src 95657633251724 (Lam "a.head" λxa.head (Src 95657642688908 (Lam "a.tail" λxa.tail (Src 95657652126092 (Lam "b" λxb (Src 95657660514700 (Let "P" (Src 95657672048841 (Lam "x" λxx (Src 95657676243145 (All "a.head" (Src 95657688826029 (Book.Char)) λxa.head (Src 95657695117513 (All "a.tail" (Src 95657707700417 (Book.String)) λxa.tail (Src 95657716089033 (Src 95657717137608 (Book.Bool))))))))) λxP (Src 95657727623564 (Let "cons" (Src 95657739157822 (Lam "b.head" λxb.head (Src 95657748595006 (Lam "b.tail" λxb.tail (Src 95657758032190 (Lam "a.head" λxa.head (Src 95657767469374 (Lam "a.tail" λxa.tail (Src 95657776906558 (App (App (Src 95657777955078 (Book.Bool.and)) (Src 95657787392288 (App (App (Src 95657788440849 (Book.U60.equal)) (Src 95657798926616 xa.head)) (Src 95657806266655 xb.head)))) (Src 95657814655293 (App (App (Src 95657815703854 (Book.String.equal)) (Src 95657829335349 xa.tail)) (Src 95657836675388 xb.tail))))))))))))) λxcons (Src 95657850306956 (Let "nil" (Src 95657861841258 (Lam "a.head" λxa.head (Src 95657871278442 (Lam "a.tail" λxa.tail (Src 95657880715626 (Book.Bool.false)))))) λxnil (Src 95657896444300 (App (App (App (App (App (Src 95657897492850 (Ins (Src 95657898541426 xb))) (Src 95657900638580 xP)) (Src 95657902735737 xcons)) (Src 95657907978621 xnil)) (Src 95657912172932 xa.head)) (Src 95657919512971 xa.tail))))))))))))))) λxcons (Src 95657929998882 (Let "nil" (Src 95657941533198 (Lam "b" λxb (Src 95657949921806 (Let "P" (Src 95657961456053 (Lam "x" λxx (Src 95657965650357 (Book.Bool)))) λxP (Src 95657975087630 (Let "cons" (Src 95657986621921 (Lam "b.head" λxb.head (Src 95657996059105 (Lam "b.tail" λxb.tail (Src 95658005496289 (Book.Bool.false)))))) λxcons (Src 95658021224974 (Let "nil" (Src 95658032759290 (Book.Bool.true)) λxnil (Src 95658047439374 (App (App (App (Src 95658048487938 (Ins (Src 95658049536514 xb))) (Src 95658051633668 xP)) (Src 95658053730825 xcons)) (Src 95658058973709 xnil))))))))))) λxnil (Src 95658066313762 (App (App (App (App (Src 95658067362324 (Ins (Src 95658068410900 xa))) (Src 95658070508054 xP)) (Src 95658072605211 xcons)) (Src 95658077848095 xnil)) (Src 95658082042401 xb))))))))))))) (Src 95657527345205 (All "a" (Src 95657534685212 (Book.String)) λxa (Src 95657545170997 (All "b" (Src 95657552511021 (Book.String)) λxb (Src 95657562996789 (Book.Bool)))))))) -Book.String.nil = (Ref "String.nil" [] (Ann (Src 101155092824109 (Ins (Src 101155093872685 (Lam "P" λxP (Src 101155098066989 (Lam "cons" λxcons (Src 101155105407021 (Lam "nil" λxnil (Src 101155113795629 xnil))))))))) (Src 101155083386899 (Book.String)))) -Book.T_AND = (Ref "T_AND" [] (Src 1099986633215 (App (App (App (Src 1099987681742 (Book.Kind.all)) (Src 1099997118930 (Txt "x"))) (Src 1100001313241 (Book.T_Bool))) (Src 1100008653310 (Lam "x" λxx (Src 1100011799038 (App (App (App (Src 1100012847590 (Book.Kind.all)) (Src 1100022284778 (Txt "y"))) (Src 1100026479089 (Book.T_Bool))) (Src 1100033819133 (Lam "y" λxy (Src 1100036964861 (Src 1100038013436 (Book.T_Bool)))))))))))) -Book.T_BOOL = (Ref "T_BOOL" [] (Src 1099569299519 (Book.Kind.set))) -Book.T_Bool = (Ref "T_Bool" [] (Src 1099588173967 (App (App (App (Src 1099589222482 (Book.Kind.all)) (Src 1099598659670 (Txt "P"))) (Src 1099602853983 (Book.Kind.set))) (Src 1099612291214 (Lam "P" λxP (Src 1099615436942 (App (App (App (Src 1099616485484 (Book.Kind.all)) (Src 1099625922672 (Txt "t"))) (Src 1099630116978 xP)) (Src 1099632214157 (Lam "t" λxt (Src 1099635359885 (App (App (App (Src 1099636408447 (Book.Kind.all)) (Src 1099645845635 (Txt "f"))) (Src 1099650039941 xP)) (Src 1099652137100 (Lam "f" λxf (Src 1099655282828 (Src 1099656331403 xP))))))))))))))) -Book.T_C2 = (Ref "T_C2" [] (Src 1100643042364 (Book.T_Nat))) -Book.T_C4 = (Ref "T_C4" [] (Src 1100792988875 (Book.T_Nat))) -Book.T_EQUAL = (Ref "T_EQUAL" [] (Src 1101033113080 (App (App (App (Src 1101034161588 (Book.Kind.all)) (Src 1101043598776 (Txt "P"))) (Src 1101047793089 (Book.Kind.set))) (Src 1101057230327 (Lam "A" λxA (Src 1101060376055 (App (App (App (Src 1101061424590 (Book.Kind.all)) (Src 1101070861778 (Txt "a"))) (Src 1101075056084 xA)) (Src 1101077153270 (Lam "a" λxa (Src 1101080298998 (App (App (App (Src 1101081347553 (Book.Kind.all)) (Src 1101090784741 (Txt "b"))) (Src 1101094979047 xA)) (Src 1101097076213 (Lam "b" λxb (Src 1101100221941 (Src 1101101270516 (Book.Kind.set)))))))))))))))) -Book.T_EXP = (Ref "T_EXP" [] (Src 1100411306897 (App (App (App (Src 1100412355427 (Book.Kind.all)) (Src 1100421792615 (Txt "n"))) (Src 1100425986925 (Book.T_Nat))) (Src 1100432278416 (Lam "n" λxn (Src 1100435424144 (App (App (App (Src 1100436472698 (Book.Kind.all)) (Src 1100445909886 (Txt "m"))) (Src 1100450104196 (Book.T_Nat))) (Src 1100456395663 (Lam "m" λxm (Src 1100459541391 (Src 1100460589966 (Book.T_Nat)))))))))))) -Book.T_Equal = (Ref "T_Equal" [] (Src 1101125387929 (App (App (Src 1101126436364 (Book.Kind.lam)) (Src 1101135873552 (Txt "A"))) (Src 1101140067992 (Lam "A" λxA (Src 1101143213720 (App (App (Src 1101144262173 (Book.Kind.lam)) (Src 1101153699361 (Txt "a"))) (Src 1101157893783 (Lam "a" λxa (Src 1101161039511 (App (App (Src 1101162087982 (Book.Kind.lam)) (Src 1101171525170 (Txt "b"))) (Src 1101175719574 (Lam "b" λxb (Src 1101178865302 (App (App (App (Src 1101179913791 (Book.Kind.all)) (Src 1101189350979 (Txt "P"))) (Src 1101193545314 (App (App (App (Src 1101194593869 (Book.Kind.all)) (Src 1101204031057 (Txt "x"))) (Src 1101208225363 xA)) (Src 1101210322529 (Lam "x" λxx (Src 1101213468257 (Src 1101214516832 (Book.Kind.set)))))))) (Src 1101226051221 (Lam "P" λxP (Src 1101229196949 (App (App (App (Src 1101230245487 (Book.Kind.all)) (Src 1101239682675 (Txt "p"))) (Src 1101243876994 (App (App (Src 1101244925565 (Book.Kind.app)) (Src 1101254362751 xP)) (Src 1101256459905 xa)))) (Src 1101259605652 (Lam "p" λxp (Src 1101262751380 (App (App (Src 1101263799951 (Book.Kind.app)) (Src 1101273237137 xP)) (Src 1101275334291 xb)))))))))))))))))))))))) -Book.T_FALSE = (Ref "T_FALSE" [] (Src 1099828298036 (Book.T_Bool))) -Book.T_False = (Ref "T_False" [] (Src 1099846123896 (App (App (Src 1099847172424 (Book.Kind.lam)) (Src 1099856609612 (Txt "P"))) (Src 1099860803959 (Lam "P" λxP (Src 1099863949687 (App (App (Src 1099864998233 (Book.Kind.lam)) (Src 1099874435421 (Txt "t"))) (Src 1099878629750 (Lam "t" λxt (Src 1099881775478 (App (App (Src 1099882824042 (Book.Kind.lam)) (Src 1099892261230 (Txt "f"))) (Src 1099896455541 (Lam "f" λxf (Src 1099899601269 (Src 1099900649844 xf))))))))))))))) -Book.T_MAIN = (Ref "T_MAIN" [] (Src 1102162430495 (App (App (Src 1102163479017 (Book.Kind.app)) (Src 1102172916247 (App (App (Src 1102173964787 (Book.Kind.app)) (Src 1102183401997 (App (App (Src 1102184450557 (Book.Kind.app)) (Src 1102193887749 (Book.T_Equal))) (Src 1102202276364 (Book.T_Bool))))) (Src 1102210664982 (Book.T_result))))) (Src 1102221150750 (Book.T_True))))) -Book.T_NAT = (Ref "T_NAT" [] (Src 1100216271528 (Book.Kind.set))) -Book.T_Nat = (Ref "T_Nat" [] (Src 1100234097421 (App (App (App (Src 1100235145914 (Book.Kind.all)) (Src 1100244583102 (Txt "P"))) (Src 1100248777415 (Book.Kind.set))) (Src 1100258214668 (Lam "P" λxP (Src 1100261360396 (App (App (App (Src 1100262408916 (Book.Kind.all)) (Src 1100271846104 (Txt "s"))) (Src 1100276040432 (App (App (App (Src 1100277088994 (Book.Kind.all)) (Src 1100286526182 (Txt "x"))) (Src 1100290720488 xP)) (Src 1100292817647 (Lam "x" λxx (Src 1100295963375 (Src 1100297011950 xP))))))) (Src 1100301206283 (Lam "s" λxs (Src 1100304352011 (App (App (App (Src 1100305400573 (Book.Kind.all)) (Src 1100314837761 (Txt "z"))) (Src 1100319032067 xP)) (Src 1100321129226 (Lam "z" λxz (Src 1100324274954 (Src 1100325323529 xP))))))))))))))) -Book.T_REFL = (Ref "T_REFL" [] (Src 1101361317697 (App (App (App (Src 1101362366189 (Book.Kind.all)) (Src 1101371803377 (Txt "A"))) (Src 1101375997690 (Book.Kind.set))) (Src 1101385434944 (Lam "A" λxA (Src 1101388580672 (App (App (App (Src 1101389629191 (Book.Kind.all)) (Src 1101399066379 (Txt "a"))) (Src 1101403260685 xA)) (Src 1101405357887 (Lam "a" λxa (Src 1101408503615 (App (App (Src 1101409552154 (Book.Kind.app)) (Src 1101418989372 (App (App (Src 1101420037924 (Book.Kind.app)) (Src 1101429475129 (App (App (Src 1101430523694 (Book.Kind.app)) (Src 1101439960886 (Book.T_Equal))) (Src 1101448349496 xA)))) (Src 1101451495227 xa)))) (Src 1101454640958 xa)))))))))))) -Book.T_RESULT = (Ref "T_RESULT" [] (Src 1101999901003 (Book.T_Bool))) -Book.T_TRUE = (Ref "T_TRUE" [] (Src 1099705614527 (Book.T_Bool))) -Book.T_True = (Ref "T_True" [] (Src 1099722391810 (App (App (Src 1099723440338 (Book.Kind.lam)) (Src 1099732877526 (Txt "P"))) (Src 1099737071873 (Lam "P" λxP (Src 1099740217601 (App (App (Src 1099741266147 (Book.Kind.lam)) (Src 1099750703335 (Txt "t"))) (Src 1099754897664 (Lam "t" λxt (Src 1099758043392 (App (App (Src 1099759091956 (Book.Kind.lam)) (Src 1099768529144 (Txt "f"))) (Src 1099772723455 (Lam "f" λxf (Src 1099775869183 (Src 1099776917758 xt))))))))))))))) -Book.T_WORK = (Ref "T_WORK" [] (Src 1101657016350 (App (App (App (Src 1101658064903 (Book.Kind.all)) (Src 1101667502091 (Txt "n"))) (Src 1101671696401 (Book.T_Nat))) (Src 1101677987869 (Lam "n" λxn (Src 1101681133597 (Src 1101682182172 (Book.T_Bool)))))))) -Book.T_and = (Ref "T_and" [] (Src 1100056887903 (App (App (Src 1100057936401 (Book.Kind.lam)) (Src 1100067373589 (Txt "x"))) (Src 1100071567966 (Lam "x" λxx (Src 1100074713694 (App (App (Src 1100075762210 (Book.Kind.lam)) (Src 1100085199398 (Txt "y"))) (Src 1100089393757 (Lam "y" λxy (Src 1100092539485 (App (App (Src 1100093588019 (Book.Kind.app)) (Src 1100103025236 (App (App (Src 1100104073789 (Book.Kind.app)) (Src 1100113510993 (App (App (Src 1100114559559 (Book.Kind.app)) (Src 1100123996745 xx)) (Src 1100126093904 (Book.T_Bool))))) (Src 1100134482515 xy)))) (Src 1100137628252 (Book.T_False))))))))))))) -Book.T_c2 = (Ref "T_c2" [] (Src 1100656673941 (App (App (Src 1100657722445 (Book.Kind.lam)) (Src 1100667159633 (Txt "P"))) (Src 1100671354004 (Lam "P" λxP (Src 1100674499732 (App (App (Src 1100675548254 (Book.Kind.lam)) (Src 1100684985442 (Txt "s"))) (Src 1100689179795 (Lam "s" λxs (Src 1100692325523 (App (App (Src 1100693374063 (Book.Kind.lam)) (Src 1100702811251 (Txt "z"))) (Src 1100707005586 (Lam "z" λxz (Src 1100710151314 (App (App (Src 1100711199872 (Book.Kind.app)) (Src 1100720637058 xs)) (Src 1100722734225 (App (App (Src 1100723782796 (Book.Kind.app)) (Src 1100733219982 xs)) (Src 1100735317136 xz)))))))))))))))))) -Book.T_c4 = (Ref "T_c4" [] (Src 1100806620478 (App (App (Src 1100807668956 (Book.Kind.lam)) (Src 1100817106144 (Txt "P"))) (Src 1100821300541 (Lam "P" λxP (Src 1100824446269 (App (App (Src 1100825494765 (Book.Kind.lam)) (Src 1100834931953 (Txt "s"))) (Src 1100839126332 (Lam "s" λxs (Src 1100842272060 (App (App (Src 1100843320574 (Book.Kind.lam)) (Src 1100852757762 (Txt "z"))) (Src 1100856952123 (Lam "z" λxz (Src 1100860097851 (App (App (Src 1100861146383 (Book.Kind.app)) (Src 1100870583569 xs)) (Src 1100872680762 (App (App (Src 1100873729307 (Book.Kind.app)) (Src 1100883166493 xs)) (Src 1100885263673 (App (App (Src 1100886312231 (Book.Kind.app)) (Src 1100895749417 xs)) (Src 1100897846584 (App (App (Src 1100898895155 (Book.Kind.app)) (Src 1100908332341 xs)) (Src 1100910429495 xz)))))))))))))))))))))) -Book.T_exp = (Ref "T_exp" [] (Src 1100478415886 (App (App (Src 1100479464355 (Book.Kind.lam)) (Src 1100488901543 (Txt "n"))) (Src 1100493095949 (Lam "n" λxn (Src 1100496241677 (App (App (Src 1100497290164 (Book.Kind.lam)) (Src 1100506727352 (Txt "m"))) (Src 1100510921740 (Lam "m" λxm (Src 1100514067468 (App (App (Src 1100515115973 (Book.Kind.lam)) (Src 1100524553161 (Txt "P"))) (Src 1100528747531 (Lam "P" λxP (Src 1100531893259 (App (App (Src 1100532941782 (Book.Kind.app)) (Src 1100542379003 (App (App (Src 1100543427552 (Book.Kind.app)) (Src 1100552864738 xm)) (Src 1100554961914 (App (App (App (Src 1100556010476 (Book.Kind.all)) (Src 1100565447664 (Txt "x"))) (Src 1100569641970 xP)) (Src 1100571739129 (Lam "x" λxx (Src 1100574884857 (Src 1100575933432 xP))))))))) (Src 1100581176330 (App (App (Src 1100582224901 (Book.Kind.app)) (Src 1100591662087 xn)) (Src 1100593759241 xP)))))))))))))))))) -Book.T_main = (Ref "T_main" [] (Src 1102238976601 (App (App (Src 1102240025138 (Book.Kind.lam)) (Src 1102249462326 (Txt "P"))) (Src 1102253656664 (Lam "P" λxP (Src 1102256802392 (App (App (Src 1102257850947 (Book.Kind.lam)) (Src 1102267288138 (Txt "refl"))) (Src 1102274628183 (Lam "refl" λxrefl (Src 1102280919639 (Src 1102281968214 xrefl))))))))))) -Book.T_refl = (Ref "T_refl" [] (Src 1101469321109 (App (App (Src 1101470369620 (Book.Kind.lam)) (Src 1101479806808 (Txt "A"))) (Src 1101484001172 (Lam "A" λxA (Src 1101487146900 (App (App (Src 1101488195429 (Book.Kind.lam)) (Src 1101497632617 (Txt "a"))) (Src 1101501826963 (Lam "a" λxa (Src 1101504972691 (App (App (Src 1101506021238 (Book.Kind.lam)) (Src 1101515458426 (Txt "P"))) (Src 1101519652754 (Lam "P" λxP (Src 1101522798482 (App (App (Src 1101523847047 (Book.Kind.lam)) (Src 1101533284235 (Txt "p"))) (Src 1101537478545 (Lam "p" λxp (Src 1101541672849 xp)))))))))))))))))) -Book.T_result = (Ref "T_result" [] (Src 1102018775456 (App (App (Src 1102019823968 (Book.Kind.app)) (Src 1102029261177 (App (App (Src 1102030309738 (Book.Kind.ann)) (Src 1102039746929 (Book.T_work))) (Src 1102047086968 (Book.T_WORK))))) (Src 1102055475615 (App (App (Src 1102056524163 (Book.Kind.app)) (Src 1102065961369 (App (App (Src 1102067009933 (Book.Kind.app)) (Src 1102076447123 (Book.T_exp))) (Src 1102082738584 (Book.T_c2))))) (Src 1102089030046 (Book.T_c4))))))) -Book.T_work = (Ref "T_work" [] (Src 1101701056795 (App (App (Src 1101702105137 (Book.Kind.lam)) (Src 1101711542325 (Txt "n"))) (Src 1101715736858 (Lam "n" λxn (Src 1101718882586 (App (App (Src 1101719930946 (Book.Kind.app)) (Src 1101729368336 (App (App (Src 1101730416716 (Book.Kind.app)) (Src 1101739854071 (App (App (Src 1101740902486 (Book.Kind.app)) (Src 1101750339717 (App (App (Src 1101751388256 (Book.Kind.app)) (Src 1101760825442 xn)) (Src 1101762922628 (App (App (App (Src 1101763971180 (Book.Kind.all)) (Src 1101773408368 (Txt "x"))) (Src 1101777602679 (Book.T_Bool))) (Src 1101784942723 (Lam "x" λxx (Src 1101788088451 (Src 1101789137026 (Book.T_Bool)))))))))) (Src 1101801720054 (App (App (Src 1101802768529 (Book.Kind.lam)) (Src 1101812205717 (Txt "p"))) (Src 1101816400117 (Lam "p" λxp (Src 1101819545845 (App (App (Src 1101820594338 (Book.Kind.lam)) (Src 1101830031526 (Txt "b"))) (Src 1101834225908 (Lam "b" λxb (Src 1101837371636 (App (App (Src 1101838420147 (Book.Kind.app)) (Src 1101847857380 (App (App (Src 1101848905917 (Book.Kind.app)) (Src 1101858343124 (App (App (Src 1101859391687 (Book.Kind.ann)) (Src 1101868828877 (Book.T_and))) (Src 1101875120339 (Book.T_AND))))) (Src 1101882460387 (App (App (Src 1101883508958 (Book.Kind.app)) (Src 1101892946144 xp)) (Src 1101895043298 xb)))))) (Src 1101899237619 (App (App (Src 1101900286190 (Book.Kind.app)) (Src 1101909723376 xp)) (Src 1101911820530 xb)))))))))))))))) (Src 1101921257743 (App (App (Src 1101922306307 (Book.Kind.lam)) (Src 1101931743495 (Txt "x"))) (Src 1101935937806 (Lam "x" λxx (Src 1101939083534 (Src 1101940132109 xx))))))))) (Src 1101947472153 (Book.T_True))))))))) -Book.U60.equal = (Ref "U60.equal" [] (Ann (Src 96757074624632 (Lam "a" λxa (Src 96757078818936 (Lam "b" λxb (Src 96757083013240 (Mat "x" (Src 96757094547533 (Op2 EQ (Src 96757099790410 xa) (Src 96757101887564 xb))) (Src 96757113421920 (Book.Bool.false)) λxx._.1 (Src 96757131247728 (Book.Bool.true)) λxx (Src 96757144879224 (Book.Bool)))))))) (Src 96757035827246 (All "a" (Src 96757043167255 (U60)) λxa (Src 96757051555886 (All "b" (Src 96757058895910 (U60)) λxb (Src 96757067284526 (Book.Bool)))))))) -Book._OBLITERATE = (Ref "_OBLITERATE" [] (Ann (Src 1102379485933 (App (App (App (Src 1102380534475 (Ins (Src 1102381583051 (App (App (Src 1102382631612 (Book.Kind.check)) (Src 1102394165955 (Book.T_main))) (Src 1102401505994 (Book.T_MAIN)))))) (Src 1102409894615 (Lam "x" λxx (Src 1102413040343 (Src 1102414088918 (Book.String)))))) (Src 1102422477540 (Lam "t" λxt (Src 1102425623268 (Src 1102426671843 (Txt "check")))))) (Src 1102436109036 (Txt "error")))) (Src 1102370048684 (Book.String)))) - -Main = (API.check Book._OBLITERATE)