MCPcopy Create free account
hub / github.com/argumentcomputer/ix / inline_like_env

Function inline_like_env

crates/kernel/src/inductive.rs:5940–6177  ·  view source on GitHub ↗

Mimics Lean.Doc.Inline: parameterized type with Array nesting. Inl.{u} (i : Sort (u+1)) : Sort (u+1) Inl.text.{u} : ∀ (i : Sort (u+1)), String → Inl.{u} i Inl.emph.{u} : ∀ (i : Sort (u+1)), Array.{u+1} (Inl.{u} i) → Inl.{u} i Inl.other.{u} : ∀ (i : Sort (u+1)), i → Array.{u+1} (Inl.{u} i) → Inl.{u} i

()

Source from the content-addressed store, hash-verified

5938 "Nat.succ rule should have 4 lambdas (0p + 1m + 2min + 1f), got {n_lams}"
5939 );
5940 }
5941
5942 /// Build env with List (1 param, 2 ctors including recursive cons).
5943 /// List.{u} : Sort u → Sort u
5944 /// List.nil.{u} : ∀ (α : Sort u), List.{u} α
5945 /// List.cons.{u} : ∀ (α : Sort u), α → List.{u} α → List.{u} α
5946 fn list_env() -> KEnv<Anon> {
5947 let mut env = KEnv::new();
5948 let block = mk_id("List");
5949
5950 // List : Sort u → Sort u (1 lvl param)
5951 let list_ty = pi(AE::sort(param(0)), AE::sort(param(0)));
5952 env.insert(
5953 mk_id("List"),
5954 KConst::Indc {
5955 name: (),
5956 level_params: (),
5957 lvls: 1,
5958 params: 1,
5959 indices: 0,
5960 is_unsafe: false,
5961 block: block.clone(),
5962 member_idx: 0,
5963 ty: list_ty,
5964 ctors: vec![mk_id("List.nil"), mk_id("List.cons")],
5965 lean_all: (),
5966 },
5967 );
5968
5969 // List.nil : ∀ (α : Sort u), List α
5970 let list_a = app(cnst("List", &[param(0)]), var(0)); // List.{u} α
5971 let nil_ty = pi(AE::sort(param(0)), list_a.clone());
5972 env.insert(
5973 mk_id("List.nil"),
5974 KConst::Ctor {
5975 name: (),
5976 level_params: (),
5977 is_unsafe: false,
5978 lvls: 1,
5979 induct: mk_id("List"),
5980 cidx: 0,
5981 params: 1,
5982 fields: 0,
5983 ty: nil_ty,
5984 },
5985 );
5986
5987 // List.cons : ∀ (α : Sort u) (head : α) (tail : List α), List α
5988 let cons_ty = pi(
5989 AE::sort(param(0)), // α
5990 pi(
5991 var(0), // head : α
5992 pi(
5993 app(cnst("List", &[param(0)]), var(1)), // tail : List α
5994 app(cnst("List", &[param(0)]), var(2)), // List α
5995 ),
5996 ),
5997 );

Callers 2

inline_like_flat_blockFunction · 0.85

Calls 10

sortFunction · 0.85
mk_idFunction · 0.70
paramFunction · 0.70
sort1Function · 0.70
piFunction · 0.70
appFunction · 0.70
cnstFunction · 0.70
varFunction · 0.70
insertMethod · 0.45
cloneMethod · 0.45

Tested by 2

inline_like_flat_blockFunction · 0.68