Explore related knowledge and questions →

Question 9923: Synthetic Free Variables before Type Inference

On this page
  1. Original question and givens
  2. Definition and scope
  3. Step-by-step derivation
  4. Reverse checks
  5. Result
  6. This question review and source binding

Return to catalogue page 50

← Question derivation index · Original question batch

R0018-09923 · q-20261013-advance-20261019-r07-lean-proof-term-0048

Original question and givens

Use the synthetic small propositional calculus or synthetic receipt specified here, not actual Lean execution. The original source pulse did not run Lean builds for these questions. A statement, tactic log and kernel-checked proof are different obligations. Context=[{"name":"h22","type":"P22"}], term={"kind":"var","name":"h22"}. Give (sorted distinct free variables, sorted context names, missing free variables, inferred type or not-evaluated, context complete?). Use the specified English-locale name order.

  • G001 — Use the synthetic small propositional calculus or synthetic receipt specified here, not actual Lean execution. The original source pulse did not run Lean builds for these questions. A statement, tactic log and kernel-checked proof are different obligations. Context=[{"name":"h22","type":"P22"}], term={"kind":"var","name":"h22"}. Give (sorted distinct free variables, sorted context names, missing free variables, inferred type or not-evaluated, context complete?). Use the specified English-locale name order.

Definition and scope

Use the original question domain, assumptions and cited MKO definitions. This item has second-context mathematical and bilingual review, with the model, answer and every arithmetic step independently recomputed from the original parameters; the source question remains a candidate.

Step-by-step derivation

S001 · implies

Before

synthetic proposition/term calculus or supplied synthetic receipt

After

no actual Lean build,source-digest check or kernel acceptance

Conditions: none

Apply only the specified small calculus or synthetic receipt protocol.Statement,tactic completion,term presence and kernel acceptance are separate.No Lean is run and the teaching guide is not promoted to a formal proof.

Step identifiers and dependencies

Rule: synthetic_proofterm_not_actual_kernel · Uses: G001

S002 · implies

Before

raw context=[{"name":"h22","type":"P22"}]

After

validated English-locale context=[["h22","P22"]]

Conditions: none

Validate every context name and type,reject duplicates,and display in the specified English order without translating opaque names.

Step identifiers and dependencies

Rule: synthetic_whole_context_validation · Uses: G001, S001

S003 · implies

Before

path=root;term={"kind":"var","name":"h22"};lambda-bound names=[]

After

free variable names=["h22"]

Conditions: none

Only lambda syntax removes a free variable.A name's presence in the external context does not make it syntactically bound in the term.This step does not perform type inference.

Step identifiers and dependencies

Rule: synthetic_free_variable_scope_rule · Uses: G001, S002

S004 · implies

Before

syntactic free names=["h22"];context names=["h22"]

After

missing=[];context complete=Yes

Conditions: none

Compare all free names with the context first.If any binding is missing,do not infer a type or guess one from appearances.

Step identifiers and dependencies

Rule: all_free_variables_bound_before_inference · Uses: G001, S003

S005 · implies

Before

path=root;term={"kind":"var","name":"h22"};context=[["h22","P22"]]

After

variable lookup type=P22

Conditions: none

Look up the exact name in the current lexical context.Do not treat a similar name or a missing binding as an assumption.

Step identifiers and dependencies

Rule: synthetic_variable_typing · Uses: G001, S004

Reverse checks

  • S005 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S004 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S003 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S002 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.
  • S001 · premise_and_result_audit — Check against the original data and this step's premises; a one-way implication is not an equivalence.

Result

([h22], [h22], [], P22, Yes)

The full substitutions and premise checks give the original answer; source identity,format and status are unchanged.

This question review and source binding

Review date: 2026-10-26

Original questions, answers, step expressions, numeric ASTs and historical records are retained. Source candidate labels remain historical and are not overwritten as formal proof.

Source hashes and review receipts
  • input commit: 0f7be61e2c22317a4075561dc822c87d881a50db
  • original question SHA-256: 8cc80498d810f679679f2c31a487a4a7adc6a89fda37baedd73327f490fd5776
  • candidate record SHA-256: 86123b1d336edaf87611245dae9d37507391cb03e0b90c13d5c58f17c75182cf
  • semantic review receipt SHA-256: bd35da62087a15d6b89b45585dc46e89b9efbe097cba7b3c707b5030496f013c
  • question-first witness SHA-256: fab45a10d8ac95c7d61d32e47d1bdd3ca862c17c3289a6bf4b01d4dc9492fbb6
  • Lean: NOT_RUN · human review: NOT_PERFORMED
Same-source full JSON