Nuprl Lemma : firstn_all

`∀[L:Top List]. ∀[n:ℤ].  firstn(n;L) ~ L supposing ||L|| ≤ n`

Proof

Definitions occuring in Statement :  firstn: `firstn(n;as)` length: `||as||` list: `T List` uimplies: `b supposing a` uall: `∀[x:A]. B[x]` top: `Top` le: `A ≤ B` int: `ℤ` sqequal: `s ~ t`
Definitions unfolded in proof :  uall: `∀[x:A]. B[x]` member: `t ∈ T` all: `∀x:A. B[x]` nat: `ℕ` implies: `P `` Q` false: `False` ge: `i ≥ j ` guard: `{T}` uimplies: `b supposing a` prop: `ℙ` subtype_rel: `A ⊆r B` or: `P ∨ Q` firstn: `firstn(n;as)` so_lambda: `so_lambda(x,y,z.t[x; y; z])` top: `Top` so_apply: `x[s1;s2;s3]` cons: `[a / b]` colength: `colength(L)` so_lambda: `λ2x y.t[x; y]` so_apply: `x[s1;s2]` squash: `↓T` sq_stable: `SqStable(P)` uiff: `uiff(P;Q)` and: `P ∧ Q` le: `A ≤ B` not: `¬A` less_than': `less_than'(a;b)` true: `True` decidable: `Dec(P)` iff: `P `⇐⇒` Q` rev_implies: `P `` Q` subtract: `n - m` nil: `[]` it: `⋅` so_lambda: `λ2x.t[x]` so_apply: `x[s]` sq_type: `SQType(T)` less_than: `a < b` bool: `𝔹` unit: `Unit` btrue: `tt` ifthenelse: `if b then t else f fi ` bfalse: `ff` exists: `∃x:A. B[x]` bnot: `¬bb` assert: `↑b` nat_plus: `ℕ+`
Rules used in proof :  sqequalSubstitution sqequalTransitivity computationStep sqequalReflexivity isect_memberFormation introduction cut thin lambdaFormation extract_by_obid sqequalHypSubstitution isectElimination hypothesisEquality hypothesis setElimination rename intWeakElimination natural_numberEquality independent_isectElimination independent_functionElimination voidElimination sqequalRule lambdaEquality dependent_functionElimination isect_memberEquality sqequalAxiom equalityTransitivity equalitySymmetry intEquality applyEquality because_Cache unionElimination voidEquality promote_hyp hypothesis_subsumption productElimination applyLambdaEquality imageMemberEquality baseClosed imageElimination addEquality dependent_set_memberEquality independent_pairFormation minusEquality instantiate cumulativity equalityElimination dependent_pairFormation sqequalIntensionalEquality baseApply closedConclusion multiplyEquality

Latex:
\mforall{}[L:Top  List].  \mforall{}[n:\mBbbZ{}].    firstn(n;L)  \msim{}  L  supposing  ||L||  \mleq{}  n

Date html generated: 2018_05_21-PM-00_20_36
Last ObjectModification: 2017_10_18-PM-00_43_25

Theory : list_0

Home Index