import TsmLean.Core.Syntax

namespace TsmLean.Compile.Source

/-! # Source language for compilation (v0.1).

The smallest meaningful source language: integer literals. The
compiler produces a one-instruction TSM program; the correctness
theorem demonstrates the proof framework. Subsequent versions extend
to arithmetic, comparison, control flow, and variables. -/

inductive Expr where
  | intLit : Int → Expr
  deriving Repr, Inhabited

abbrev Value := TsmLean.Core.Value

inductive Eval : Expr → Value → Prop where
  | intLit (n : Int) : Eval (.intLit n) (.vInt n)

end TsmLean.Compile.Source
