Not signed in (Sign In)

Not signed in

Want to take part in these discussions? Sign in if you have an account, or apply for one below

  • Sign in using OpenID

Site Tag Cloud

2-category 2-category-theory abelian-categories adjoint algebra algebraic algebraic-geometry algebraic-topology analysis analytic-geometry arithmetic arithmetic-geometry book bundles calculus categorical categories category category-theory chern-weil-theory cohesion cohesive-homotopy-type-theory cohomology colimits combinatorics complex complex-geometry computable-mathematics computer-science constructive cosmology deformation-theory descent diagrams differential differential-cohomology differential-equations differential-geometry digraphs duality elliptic-cohomology enriched fibration foundation foundations functional-analysis functor gauge-theory gebra geometric-quantization geometry graph graphs gravity grothendieck group group-theory harmonic-analysis higher higher-algebra higher-category-theory higher-differential-geometry higher-geometry higher-lie-theory higher-topos-theory history homological homological-algebra homotopy homotopy-theory homotopy-type-theory index-theory integration integration-theory k-theory lie lie-theory limit limits linear linear-algebra locale localization logic mathematics measure-theory modal modal-logic model model-category-theory monad monads monoidal monoidal-category-theory morphism motives motivic-cohomology nlab noncommutative noncommutative-geometry number-theory of operads operator operator-algebra order-theory pages pasting philosophy physics pro-object probability probability-theory quantization quantum quantum-field quantum-field-theory quantum-mechanics quantum-physics quantum-theory question representation representation-theory riemannian-geometry scheme schemes set set-theory sheaf simplicial space spin-geometry stable-homotopy-theory string string-theory superalgebra supergeometry svg symplectic-geometry synthetic-differential-geometry terminology theory topology topos topos-theory tqft type type-theory universal variational-calculus

Vanilla 1.1.10 is a product of Lussumo. More Information: Documentation, Community Support.

Welcome to nForum
If you want to take part in these discussions either sign in now (if you have an account), apply for one now (if you don't).
    • CommentRowNumber1.
    • CommentAuthorMike Shulman
    • CommentTimeJun 14th 2018

    I just realized (heh) something interesting. Let NN be a “weak natural numbers object” in SetSet, i.e. equipped with an element z:Nz:N and a function s:NNs:N\to N such that for any set YY with an element z Y:Yz_Y:Y and function s Y:N×YYs_Y:N\times Y\to Y there exists a not-necessarily-unique function f:NYf:N\to Y such that f(z)=z Xf(z) = z_X and f(s(x))=s Y(x,f(x))f(s(x)) = s_Y(x,f(x)). It follows that zs(x)z\neq s(x) for all x:Nx:N, and ss is injective. Every “real” natural number nn is represented by an element n=s(s(sn(z))):N\mathbf{n} = \overset{n}{\overbrace{s(s(\dots s}}(z)\dots)):N, but not every element of NN need be of this form.

    Now work in the realizability tripos of some PCA AA in Set (like untyped lambda calculus), so that the predicates over a set XX are functons XΩ=P(A)X\to \Omega = P(A). Define a predicate “xx\in \mathbb{N}” on the set NN as follows in the internal tripos logic:

    (x)(α:NΩ).((y:N.(α(y)α(s(y))))α(z)α(x)) (x\in \mathbb{N}) \coloneqq \forall (\alpha : N\to \Omega). ((\forall y:N. (\alpha(y) \to \alpha(s(y)))) \to \alpha(z) \to \alpha(x))

    That is, nn\in\mathbb{N} is the internal assertion that “nn satisfies induction”.

    Then for any “real” natural number nn, the Church numeral n̲=λgk.g n(k)\underline{n} = \lambda g k. g^n(k) is a realizer of the statement n\mathbf{n}\in\mathbb{N}. Indeed it is the “obvious” such realizer, corresponding to the obvious way to prove n\mathbf{n}\in\mathbb{N}: start with the base case α(z)\alpha(z) (i.e. the argument kk), then apply the inductive step (i.e. the argument gg) nn times.

    Similarly, if we use the weak recursion principle of NN to define operations like add:NNNadd: N\to N\to N and so on, then the Church encodings of the corresponding operations on Church numerals are the “obvious” realizers of the statements that these operations preserve elements satisfying induction. For instance, Church addition λ\lambda a b g k. a g(b g k) realizes the statement xy.((x)(y)(x+y))\forall x y. ((x\in\mathbb{N}) \to (y\in\mathbb{N}) \to (x+y\in\mathbb{N})).

    This seems like the sort of thing “everyone should know”, but I don’t think I knew it. Did I? Where is it written down? I like it because it connects the use of λ\lambda-calculus as a computational model (where the λ\lambda-terms are the data and the functions that compute with it) to its use in realizability as “witnesses to truth” (where the actual data and functions are in the underlying sets, and the realizers just “track” them), and makes the Church numerals seem unavoidable/canonical in this regard.

    • CommentRowNumber2.
    • CommentAuthorAHartNtkn
    • CommentTimeJun 17th 2018

    I think the first person to note this explicitly was Daniel Leivant in “Reasoning about functional programs and complexity classes associated with type disciplines” (1983) where he explicitly notes that church encoded data can act as proofs of, among other things, induction, connecting them to Kleene Realizability. This idea is used, in a much more generalized form, to generate the datatypes in the more recent Cedille project.

  1. Very interesting; I did not know that before. I idly wonder which statements the Scott numerals realize (see, for instance, page 2 of this set of slides), will think about that.

    • CommentRowNumber4.
    • CommentAuthorMike Shulman
    • CommentTimeJun 18th 2018

    Thanks! That’s very interesting.