##
###
Bar induction: The good, the bad, and the ugly

Vincent Rahli, Mark Bickford, Robert L. Constable

2017
*
2017 32nd Annual ACM/IEEE Symposium on Logic in Computer Science (LICS)
*

We present an extension of the computation system and logic of the Nuprl proof assistant with intuitionistic principles, namely versions of Brouwer's bar induction principle, which is equivalent to transfinite induction. We have substantially extended the formalization of Nuprl's type theory within the Coq proof assistant to show that two such bar induction principles are valid w.r.t. Nuprl's semantics (the Good): one for sequences of numbers that involved only minor changes to the system, and
## more »

... more general one for sequences of name-free (the Ugly) closed terms that involved adding a limit constructor to Nuprl's term syntax in our model of Nuprl's logic. We have proved that these additions preserve Nuprl's key metatheoretical properties such as consistency. Finally, we show some new insights regarding bar induction, such as the nontruncated version of bar induction on monotone bars is intuitionistically false (the Bad). 978-1-5090-3018-7/17/$31.00 c 2017 IEEE ple [59; 58] (Sec. III-A discusses squashing/truncation). These past few years we have also been experimenting with versions of BI, which is an induction principle on barred universal spreads. What does that mean? A spread, as Dummett defines it [31, Sec.3.2] "is essentially a tree, with the restriction that every path is infinite, and that we can effectively construct any subtree consisting of initial segments of finitely many paths". The universal spread is the type of choice sequences of numbers (denoted B below). A fan is a finitely branching spread. A bar is a property of spreads that is true about at least one initial segment of each path. As mentioned by Kleene [42" BI corresponds to Brouwer's footnote 7 in [21] , which roughly speaking says that if a spread is barred then there is a "backward" inductive proof of that. We first state below a "general" unconstrained version of BI, i.e. where the bar is not constrained, which is not true in constructive mathematics [42, Sec.7.14; 31, Sec.3.4; 62, Rem.3.3; 74, Sec.2]-Kleene showed that it contradicts continuity [42, Sec.7.14,Lem. * 27.23]. However, BI is often accepted by intuitionists when bars are restricted to decidable or monotone bars [42; 31; 76]. Also, as proved by Kleene [42, Lem.9.8], functions on numbers, such as B's members, are not and cannot be restricted to general recursive functions for FT and BI to be true (see also [71, p.223; 31, 36, Sec.4; 42, ). Until recently, CTT's B type only contained general recursive functions. As we explain here, this is not the case anymore. Before stating BI in the next paragraph, we first need to introduce some notation (Sec. II discusses Nuprl's syntax and semantics in more details): We write B for the Baire space, i.e., the function space N → N, which we also write as N N . We write B k for N N k , where k is a natural number and N k is the type of natural numbers strictly less than k. We use Π and Σ in lieu of the constructive logical quantifiers ∀ and ∃, respectively. We sometimes write Σx 1 :T 1 . · · · Σx n :T n .P as Σ(x 1 : T 1 ) · · · (x n : T n ).P , and similarly for Π types. In the context of types, we use the symbols + and ∨ for the disjoint union type. The type t = T u (also written t = u ∈ T ) expresses that t and u are equal members of the type T . Let False be 0 = N 1, and True be 0 = N 0. As usual, ¬T is defined as T → False. U i is the universe type at level i. We often omit levels and write either Type or P for U i -as opposed to Coq, there is no distinction between types and propositions in Nuprl. We now formally state BI. A term P is a predicate on finite sequences (of numbers) if it is a member of the type Πn:N.B n → P. A predicate on finite sequences P is a subset of another predicate on finite sequences Q if for all n ∈ N and s ∈ B n , P (n, s) implies Q(n, s)-in this context, for readability, we sometimes write P (a, b) for the application (P a b) . A bar is a predicate on finite sequences B, such that Πs:B.Σn:N.B(n, s)-we will see below that the Σ type in this formula can sometimes be truncated. A bar B is decidable if for all n ∈ N and

doi:10.1109/lics.2017.8005074
dblp:conf/lics/RahliBC17
fatcat:jilht2aeozh6zor7bhcqgx32se