Types with fixed points
Simple types + fixed points
- appear positively
- inductive + coinductive data types (
mu
andnu
)
Sequent calculus with fixed points
sigma1, ..., sigma n => tau
: interpreted as prod sigma_i => tau
introduction / construct / LHS
...
elimination / destructed / RHS
=> pho
\sigma => \tau
--------------
\sigma -> \pho => \tau
muLJ
is the extension of usual LJ
by the fixed point rules
- computational theory given by cut-elimination
idea important the logical correspondence to the structural unfolding rules in mu-l
Example: natural numbers as inductive types
the destructor:
Example : streams as coinductive types
Aside: interpreting types wit fixed points
- A set theoretic model?
- cannot interpret fixed-point types
- no
nu X. X
,mu X. ((X -> A) -> B)
- non-canonicalizable meaning
- no
- cannot interpret fixed-point types
- A computability theoretic model:
- interpret T as a set
tau^R \in natural number
(powerset of natural numbers, forming a lattice ⇒ LFP, GFP)- (Kleene model)
(sigma -> tau)^R = {n : \forall m in sigma^R, Mn(m) terminates \in tau^R}
- a more abstract way
- analogy to logical relations
(mu X. sigma(X))^R = LFP[A |-> \sigma(A)^R]
- interpret T as a set
also extend to system F
Circular Proofs
Non-wellfounded typing:
Progressing coderivations
NB: cyclic proof checking is decidable, reducing to universality of Buchi automata
- no iterator anymore
- we have unfolding, and the proof can be infinite
If you observe the proof tree, you will see a more fine grained correspondence to the algorithm. destructor on the left
The only infinite branching happens on mu-left and nu-right
We can encode
mu-l
! ( question ( strict?) more expressive)
Ackermann function
- recall, non encodable in natural number primitive recursors - requires higher types
- but we can use
mu-l'
to construct circular proof- unlike previous example, much complexer (with 3 infinite branch c.f. 1)
- progressive is provable
Some observations
- circular proofs interpret finite ones
- circular proofs can be more succinct than finite ones but,
Are circular proofs more expressive than finite ones?
System T ( a focus of the above designs )
(C)T is the restriction of (C)muLJ to just one fixed point N
- (C) for circular variant
Thm: (Affine) CT and (affine) T represent the same type 1 functions [KPP21]
How it fits with the Ackermann function?
Indeed, write (C)T_n for restriction of (C)T to just level n types.
Thm (Das21): T_n+1 and CT_n interpret each other, thus T_n+1 and CT_n represent the same type 1 functions
Totallity: the problem of non-constructivity
Proposition (Totality): If P is progressing then P^interp is total
- the proof is highly non-constructive
- proof by contradiction
- we are building an infinite branch out of an infinite tree
What about (C)muLJ?
Theorem: CD23:
muLJ
and CmuLJ
define just the functions provably recursive in Sigma
Motto: circular proofs are more expressive than finite ones … up to a point
Next part: model theory of circular proofs