pith. machine review for the scientific record. sign in
def

extractNeighborhood

definition
show as:
view math explainer →
module
IndisputableMonolith.Complexity.CellularAutomata
domain
Complexity
line
64 · github
papers citing
none yet

open explainer

Generate a durable explainer page for this declaration.

open lean source

IndisputableMonolith.Complexity.CellularAutomata on GitHub at line 64.

browse module

All declarations in this module, on Recognition.

explainer page

Tracked in the explainer inventory; generation is lazy so crawlers do not trigger LLM jobs.

open explainer

depends on

used by

formal source

  61  right  : CellState
  62
  63/-- Extract neighborhood from tape at position i -/
  64noncomputable def extractNeighborhood (tape : Tape) (i : ℤ) : Neighborhood :=
  65  { left := tape (i - 1)
  66  , center := tape i
  67  , right := tape (i + 1) }
  68
  69/-- The local update rule -/
  70def localRule (n : Neighborhood) : CellState :=
  71  match n.left, n.center, n.right with
  72  -- Signal propagation: Signal moves right
  73  | _, .Signal, .Wire => .Signal
  74  | _, .Signal, .Blank => .Signal
  75  -- Wire carries signal
  76  | .Signal, .Wire, _ => .Signal
  77  | .Signal, .Blank, _ => .Blank  -- Signal consumed
  78  -- AND gate: both inputs must be One
  79  | .One, .Gate, .One => .One
  80  | .One, .Gate, .Zero => .Zero
  81  | .Zero, .Gate, .One => .Zero
  82  | .Zero, .Gate, .Zero => .Zero
  83  -- OR gate: either input is One
  84  | .One, .Wire, .One => .One
  85  | .One, .Wire, .Zero => .One
  86  | .Zero, .Wire, .One => .One
  87  | .Zero, .Wire, .Zero => .Zero
  88  -- NOT gate: invert center when activated
  89  | .Signal, .Zero, _ => .One
  90  | .Signal, .One, _ => .Zero
  91  -- Default: preserve state
  92  | _, c, _ => c
  93
  94/-- Apply local rule globally to create successor tape -/