-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathUrm.lean
More file actions
39 lines (33 loc) · 1.19 KB
/
Copy pathUrm.lean
File metadata and controls
39 lines (33 loc) · 1.19 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
-- This module serves as the root of the `Urm` library.
-- Import modules here that should be built as part of the library.
import Urm.PartSequence
import Urm.Basic
import Urm.Execution
import Urm.Shift
import Urm.Embeddings
import Urm.Computable
import Urm.Arithmetic
import Urm.Composition.Basic
import Urm.PrimitiveRecursion.Basic
import Urm.Minimization.Basic
import Urm.Partrec
import Urm.Simulate.Basic
/-! # Public API
Core types and main theorems for URM computability.
## Core Types
- `Urm.Instr` - URM instructions (Z, S, T, J)
- `Urm.Program` - Programs as lists of instructions
- `Urm.Config` - Machine configurations (pc + state)
- `Urm.Step` - Single-step execution relation
- `Urm.Steps` - Multi-step execution
## Computability
- `Urm.URMComputable` - n-ary URM-computability
- `Urm.URMComputable1` - Unary version for ℕ →. ℕ
## Main Theorems
- `Urm.URMComputable1.toPartrec` - URM-computable implies Partrec (unary)
- `Nat.Partrec.toURMComputable1` - Partrec implies URM-computable (unary)
-/
export Urm (Instr Program Config Step Steps)
export Urm (URMComputable URMComputable1)
export Urm (URMComputable1.toPartrec)
-- Note: Nat.Partrec.toURMComputable1 is in Nat namespace, auto-accessible