Documentation

Cslib.Computability.URM.Computable

URM-Computable Functions #

This file defines the notion of URM-computability for partial functions on natural numbers.

Main definitions #

Implementation notes #

Inputs are provided in registers 0, 1, ..., n-1 and output is read from register 0.

def Cslib.URM.Computes (n : ℕ) (p : Program) (f : (Fin n → ℕ) → Part ℕ) :

A program p computes a partial function f : (Fin n → ℕ) → Part ℕ if for any input, eval p inputs = f inputs as partial values. This captures both:

  • The program halts iff the function is defined on that input
  • When both are defined, the program's output equals the function's value

Note: Inputs are provided in registers 0, 1, ..., n-1 and output is read from register 0.

Equations
Instances For
    def Cslib.URM.Computable (n : ℕ) (f : (Fin n → ℕ) → Part ℕ) :

    A partial function f : (Fin n → ℕ) → Part ℕ is URM-computable if there exists a URM program that computes it.

    Equations
    Instances For