Skip to content

Commit 7b5a322

Browse files
committed
Finish the TODOs
Signed-off-by: zeramorphic <zeramorphic@proton.me>
1 parent ab038ed commit 7b5a322

File tree

8 files changed

+65
-48
lines changed

8 files changed

+65
-48
lines changed

blueprint/src/chapters/conclusion.tex

Whitespace-only changes.

blueprint/src/chapters/construction.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -194,10 +194,10 @@ \section{Model data defined}
194194
\end{proof}
195195
\begin{definition}[new t-set]
196196
\label{def:NewTSet}
197-
\uses{prop:AllPerm.smul_cloud_smul,prop:Path.rec}
197+
\uses{prop:AllPerm.smul_cloud_smul}
198198
A \emph{new t-set} is an even code \( c \) such that there is an \( \alpha \)-support that supports \( c \) under the action of new allowable permutations, or a designated object called the empty set.
199199
New allowable permutations act on new t-sets in the same way that they act on codes, and map the empty set to itself.
200-
We define the map \( U_\alpha \) from new t-sets to \( \StrSet_\alpha \) by cases from the top of the path in the obvious way (using \cref{prop:Path.rec} and the membership relation from \cref{prop:Code.ext}).
200+
We define the map \( U_\alpha \) from new t-sets to \( \StrSet_\alpha \) by cases from the top of the path in the obvious way (using recursion on paths and the membership relation from \cref{prop:Code.ext}).
201201
It is easy to check that \( \rho(U_\alpha(x)) = U_\alpha(\rho(x)) \) by \cref{prop:AllPerm.smul_cloud_smul}.
202202
\end{definition}
203203
\begin{definition}[new model data]

blueprint/src/chapters/counting.tex

Lines changed: 17 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,15 +20,27 @@ \section{Strong supports}
2020
If \( S \) is a strong \( \beta \)-support and \( \rho \) is \( \beta \)-allowable, then \( \rho(S) \) is strong.
2121
\end{proposition}
2222
\begin{proof}
23-
TODO
23+
Interference is stable under application of allowable permutations, and the required supports are also preserved under action of allowable permutations.
2424
\end{proof}
2525
\begin{proposition}
2626
\uses{def:Strong}
2727
\label{prop:exists_strong}
2828
For every support \( S \), there is a strong support \( T \succeq S \).
2929
\end{proposition}
3030
\begin{proof}
31-
TODO
31+
We define a relation \( R \) on pairs \( (A, N) \) where \( A : \beta \tpath \bot \) and \( N \) is a near-litter by the following constructor.
32+
If \( I = (\gamma,\delta,\varepsilon,A) \) and \( t : \Tang_\delta \), then for any near-litter \( N_1 \) such that \( N_1^\circ = f_{\delta,\varepsilon}(t) \) and any path \( B : \delta \tpath \bot \) and near-litter \( N_2 \in \supp(t)_B^\NearLitter \), we define \( ((A_\delta)_B, N_2) \mathrel{R} ((A_\varepsilon)_\bot, N_1) \).
33+
This is well-founded, because if \( (B, N_2) \mathrel{R} (A, N_1) \) then \( \iota(N_2) < \iota(N_1) \).
34+
For any small set \( s \) of such pairs, the transitive closure of \( s \) under \( R \) is small.
35+
36+
Let \( S \) be a support, and let \( s \) be the transitive closure of the set of pairs \( (A, N) \) such that \( N \in \im S_A^\NearLitter \).
37+
Generate a support \( T \) from \( S \) and \( s \) using the fact that every small set is the range of some enumeration.
38+
This satisfies the second condition of being a strong support.
39+
40+
Now, for any base support \( T \), we define its \emph{interference support} to be a base support \( U \) consisting of just the atoms in the interference of all near-litters that appear in \( T \).
41+
We may extend this definition to structural supports.
42+
43+
Finally, if \( U \) is the interference support of the \( T \) defined above, the support \( T + U \) is strong, and since \( S \succeq T \), we conclude \( S \preceq T + U \).
3244
\end{proof}
3345

3446
\section{Coding functions}
@@ -148,9 +160,9 @@ \section{Specifications}
148160
\end{proof}
149161
\begin{proposition}
150162
\uses{def:StrSupport.spec}
151-
\label{def:spec_smul}
163+
\label{prop:spec_smul}
152164
Let \( \rho \) be \( \beta \)-allowable, and let \( S \) be a \( \beta \)-support.
153-
Then \( \spec(\rho(S)) = \spec(S) \).\footnote{TODO: Consider removing this; I don't think it's used.}
165+
Then \( \spec(\rho(S)) = \spec(S) \).
154166
\end{proposition}
155167
\begin{proof}
156168
\uses{prop:spec_eq_spec_iff}
@@ -182,7 +194,7 @@ \section{Specifications}
182194
\uses{def:BaseSupport}
183195
\label{def:conv_base}
184196
Let \( S \) and \( T \) be base supports.
185-
We define the relations \( \conv_{S,T}^\Atom, \conv_{S,T}^\NearLitter \) by the constructors\footnote{TODO: We should abstract this out even further. This can be defined for any pair of relations with common domain.}
197+
We define the relations \( \conv_{S,T}^\Atom, \conv_{S,T}^\NearLitter \) by the constructors\footnote{This should be abstracted out even further; this can be defined for any pair of relations with common domain.}
186198
\begin{align*}
187199
&(i, a_1) \in S^\Atom \to (i, a_2) \in T^\Atom \to (a_1, a_2) \in \conv_{S,T}^\Atom \\
188200
&(i, N_1) \in S^\NearLitter \to (i, N_2) \in T^\NearLitter \to (N_1, N_2) \in \conv_{S,T}^\NearLitter

blueprint/src/chapters/environment.tex

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,14 @@ \section{The structural hierarchy}
101101
\begin{definition}[path]
102102
\label{def:Path}
103103
\uses{def:TypeIndex}
104-
If \( \alpha, \beta \) are type indices, then a \emph{path} \( \alpha \tpath \beta \) is a nonempty finite subset of \( \lambda^\bot \) with maximal element \( \alpha \) and minimal element \( \beta \).\footnote{In previous versions, we used ordered lists (more precisely, a quiver structure) to represent paths. This had the effect that editing paths at the bottom was much easier than editing paths at the top. In this implementation, we are making the decision to put both types of edit on equal footing (and neither will definitionally reduce). TODO: It might be cleaner to still use a cons-list format but encapsulate it lots.}
104+
If \( \alpha, \beta \) are type indices, then a \emph{path} \( \alpha \tpath \beta \) is given by the constructors
105+
\begin{itemize}
106+
\item \( \newoperator{nil} : \alpha \tpath \alpha \);
107+
\item \( \newoperator{cons} : (\gamma < \beta) \to (\alpha \tpath \beta) \to (\alpha \tpath \gamma) \).
108+
\end{itemize}
109+
We define by recursion a \( \newoperator{snoc} \) operation on the top of paths.
110+
We also prove the induction principle for \( \newoperator{nil} \) and \( \newoperator{snoc} \).
111+
105112
A path \( \alpha \tpath \bot \) is called an \emph{\( \alpha \)-extended index}.
106113
We write \( \nil(\alpha) \) for the path \( \{ \alpha \} : \alpha \tpath \alpha \).
107114
If \( h \) is a proof of \( \beta < \alpha \), we write \( \single(h) \) for the path \( \{ \alpha, \beta \} : \alpha \tpath \beta \).
@@ -152,19 +159,6 @@ \section{The structural hierarchy}
152159
If \( A : \alpha \tpath \beta \) and \( B : \beta \tpath \gamma \), the derivative \( A_B \) is defined to be the union \( A \cup B : \alpha \tpath \gamma \), and the coderivative \( B^A \) is defined to be \( A_B \).
153160
\end{definition-no-bp}
154161

155-
\begin{proposition}[induction along paths]
156-
\label{prop:Path.rec}
157-
\uses{def:Path}
158-
Fix a type index \( \alpha \) and universe \( u \), and let
159-
\[ C : \prod_{\beta : \lambda^\bot} (\alpha \tpath \beta) \to \Sort_u \]
160-
Let
161-
\[ n : C(\alpha, \nil(\alpha));\quad c : \prod_{\beta, \gamma : \lambda^\bot} \prod_{A : \alpha \tpath \beta} \prod_{h : \gamma < \beta} C(\beta, A) \to C(\beta, A_h) \]
162-
Then there is a term
163-
\[ x : \prod_{\beta : \lambda^\bot} \prod_{A : \alpha \tpath \beta} C(\beta, A) \]
164-
such that
165-
\[ x(\alpha, \nil(\alpha)) = n;\quad x(\gamma, A_h) = c(\beta, \gamma, A, h, x(\beta, A)) \]
166-
The same holds for paths pointing in the reverse direction.
167-
\end{proposition}
168162
\begin{definition}[tree]
169163
\label{def:Tree}
170164
\uses{def:Path}
@@ -226,16 +220,20 @@ \section{The structural hierarchy}
226220
\begin{definition}[structural support]
227221
\label{def:StrSupport}
228222
\uses{def:BaseSupport,def:Tree}
229-
A \emph{\( \beta \)-structural support} (or just \emph{\( \beta \)-support}) is a \( \beta \)-tree of base supports.
223+
A \emph{\( \beta \)-structural support} (or just \emph{\( \beta \)-support}) is a pair \( S = (S^\Atom, S^\NearLitter) \) where \( S^\Atom \) is an enumeration of \( (\beta \tpath \bot) \times \Atom \) and \( S^\NearLitter \) is an enumeration of \( (\beta \tpath \bot) \times \NearLitter \).
230224
The type of \( \beta \)-supports is written \( \StrSupp_\beta \).
231225
There are precisely \( \#\mu \) structural supports for any type index \( \beta \).
232-
Following \cref{def:Tree}, structural supports have derivatives, structural permutations act on structural supports, and there is a group action of \( \beta \)-permutations on \( \beta \)-supports.
233-
If \( S \) is a \( \beta \)-support and \( A : \alpha \tpath \beta \), the coderivative \( S^A \) is the \( \alpha \)-support given by
234-
\[ (S^A)_B = \begin{cases}
235-
S_C & \text{if } B = A_C \text{ for some } C \\
236-
\varnothing & \text{otherwise}
237-
\end{cases} \]
238-
Thus \( (S^A)_A = S \).
226+
227+
For a path \( A : \beta \tpath \bot \), we write \( S_A \) for the base support \( T \) given by
228+
\[ T^\Atom = \{ (i, a) \mid (i, (A, a)) \in S^\Atom \};\quad T^\NearLitter = \{ (i, N) \mid (i, (A, N)) \in S^\NearLitter \} \]
229+
More generally, for a path \( A : \beta \tpath \gamma \), we write \( S_A \) for the \( \gamma \)-support \( T \) given by
230+
\[ T^\Atom = \{ (i, (B, a)) \mid (i, (A_B, a)) \in S^\Atom \};\quad T^\NearLitter = \{ (i, (B, N)) \mid (i, (A_B, N)) \in S^\NearLitter \} \]
231+
For a path \( A : \alpha \tpath \beta \), we write \( S^A \) for the \( \alpha \)-support \( T \) given by
232+
\[ T^\Atom = \{ (i, (A_B, a)) \mid (i, (B, a)) \in S^\Atom \};\quad T^\NearLitter = \{ (i, (A_B, N)) \mid (i, (B, N)) \in S^\NearLitter \} \]
233+
Clearly, \( (S^A)_A = S \).
234+
235+
\( \beta \)-structural permutations act on pairs \( (A, x) \) by \( \pi(A, x) = (A, \pi_A(x)) \), where \( x \) is either an atom or a near-litter.
236+
Hence, structural permutations act on structural supports.
239237

240238
Let \( \tau \) be a type, and let \( G \) be a \( \texttt{StrPermClass}_\beta \)-group that acts on \( \tau \).
241239
We say that \( S \) \emph{supports} \( x : \tau \) under the action of \( G \) if whenever \( \pi : G \) fixes \( S \), it also fixes \( x \), and moreover, if \( \beta = \bot \) then \( S_A^\NearLitter \) is empty for any \( A : \bot \tpath \bot \) (and of course there is exactly one such path).
@@ -368,13 +366,13 @@ \section{Hypotheses of the recursion}
368366
\end{definition}
369367
\begin{definition}[coherent data]
370368
\label{def:CoherentData}
371-
\uses{def:TypedNearLitter,prop:Path.rec,def:InflexiblePath}
369+
\uses{def:TypedNearLitter,def:InflexiblePath}
372370
Let \( \alpha \) be a proper type index.
373371
Suppose that we have model data for all type indices \( \beta \leq \alpha \), position functions for \( \Tang_\beta \) for all \( \beta < \alpha \), and typed near-litters for all \( \beta < \alpha \).
374372
We say that the model data is \emph{coherent} below level \( \alpha \) if the following hold.
375373
\begin{itemize}
376374
\item For \( \gamma < \beta \leq \alpha \), there is a map \( \AllPerm_\beta \to \AllPerm_\gamma \) that commutes with the coercions from \( \AllPerm_{(-)} \) to \( \StrPerm_{(-)} \).
377-
We can use this map to define arbitrary derivatives of allowable permutations by \cref{prop:Path.rec}.
375+
We can use this map to define arbitrary derivatives of allowable permutations by recursion on paths.
378376
\item If \( (x, S) \) is a \( \beta \)-tangle for \( \beta < \alpha \), and \( y \) is an atom or near-litter that occurs in the range of \( S_A \), then \( \iota(y) < \iota(x, S) \).
379377
\item Let \( \beta \leq \alpha \), and let \( \gamma, \delta < \beta \) be distinct with \( \delta \) proper.
380378
Let \( t : \Tang_\gamma \) and \( \rho : \AllPerm_\beta \).

blueprint/src/chapters/induction.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -70,7 +70,7 @@ \section{Building the tower}
7070
For a proper type index \( \alpha \), the \emph{main motive} at \( \alpha \) is the type \( \Motive_\alpha \) consisting of model data at \( \alpha \), a position function for \( \Tang_\alpha \), and typed near-litters at \( \alpha \), such that if \( (x, S) \) is an \( \alpha \)-tangle and \( y \) is an atom or near-litter that occurs in the range of \( S_A \), then \( \iota(y) < \iota(x, S) \).
7171
\end{definition}
7272
\begin{definition}
73-
\uses{def:MainMotive,def:TypedNearLitter,prop:Path.rec,def:InflexiblePath}
73+
\uses{def:MainMotive,def:TypedNearLitter,def:InflexiblePath}
7474
\label{def:MainHypothesis}
7575
We define the \emph{main hypothesis}
7676
\[ \Hypothesis : \prod_{\alpha : \lambda} \Motive_\alpha \to \left( \prod_{\beta < \alpha} \Motive_\beta \right) \to \Type_{u+1} \]

blueprint/src/chapters/model.tex

Lines changed: 22 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -45,17 +45,27 @@ \section{Raising strong supports}
4545
Follows directly from \cref{prop:Strong.smul,prop:raiseStrong}.
4646
\end{proof}
4747
\begin{proposition}
48-
\uses{prop:exists_strong,def:StrSupport.spec}
49-
\label{prop:raiseRaise_spec}
50-
Let \( S \) be a strong \( \alpha \)-support and let \( T \) be a \( \gamma \)-support.
51-
Let \( U \) be the strong support generated by \( T^\beta \), and let \( V \) be the support whose image is precisely those atoms in the interference of \( S_\beta \) and \( U \).
52-
Let \( \rho \) be a \( \beta \)-allowable permutation that fixes \( S_\beta \).
53-
Then \( S + (U + V)^\alpha \) and \( S + (\rho(U + V))^\alpha \) have the same specification.
48+
\label{prop:combineStrong}
49+
Let \( S \) be a strong \( \alpha \)-support.
50+
Let \( U \) be a strong \( \beta \)-support with the property that if \( A \) is a path such that \( \im U_A^\NearLitter \) is nonempty, then \( A \) has length at least 2.
51+
Then for every \( \beta \)-allowable \( \rho \) that fixes \( S_\beta \), we have \( \spec(S + U^\alpha) = \spec(S + (\rho(U))^\alpha) \).
5452
\end{proposition}
5553
\begin{proof}
56-
\uses{prop:spec_eq_spec_iff,prop:raiseStrong}
57-
We appeal to \cref{prop:spec_eq_spec_iff}.
58-
TODO
54+
Appeal to \cref{prop:spec_eq_spec_iff}.
55+
First, note that \( (i, a) \in (S + (\rho(U))^\alpha)_A^\Atom \) if and only if \( (i, a) \in S \) or \( A = B^\alpha \) and \( (i, a) \in \rho(U)_B^\Atom \).
56+
Thus,
57+
\begin{align*}
58+
(i, a_1) \in (S + U^\alpha)_A^\Atom &\to \exists a_2,\, (i, a_2) \in (S + (\rho(U))^\alpha)_A^\Atom \\
59+
&\quad\wedge [(\exists B,\, A = B^\alpha \wedge \rho_B(a_1) = a_2) \vee ((\forall B,\, A \neq B^\alpha) \wedge a_1 = a_2)]
60+
\end{align*}
61+
and the same holds for the other direction\footnote{We can prove the other direction easily from this by substituting \( \rho(U) \) and \( \rho^{-1} \).} and for near-litters.
62+
63+
The coimage condition is clear.
64+
Suppose that \( (i, a_1) \in (S + U^\alpha)_A^\Atom \) and \( (i, a_2) \in (S + (\rho(U))^\alpha)_A^\Atom \).
65+
Then by coinjectivity we can apply the above result, giving that either there is \( B \) such that \( A = B^\alpha \) and \( \rho_B(a_1) = a_2 \), or there is no such \( B \), and \( a_1 = a_2 \).
66+
In either case, the result is easy to show.
67+
68+
The result for litters follows from the fact that the condition on \( U \) implies that proofs of inflexiblity of litters in \( U \) correspond bijectively to proofs of inflexibility of litters in \( U^\alpha \).
5969
\end{proof}
6070
\begin{proposition}
6171
\uses{def:Strong}
@@ -66,8 +76,9 @@ \section{Raising strong supports}
6676
\[ \rho'(S) = S;\quad (\rho'_\beta)_\gamma(T) = \rho_\gamma(T) \]
6777
\end{proposition}
6878
\begin{proof}
69-
\uses{prop:exists_allowable_of_spec_eq_spec,prop:raiseRaise_strong,prop:raiseRaise_spec}
70-
Apply \cref{prop:exists_allowable_of_spec_eq_spec,prop:raiseRaise_strong,prop:raiseRaise_spec}.
79+
\uses{prop:exists_allowable_of_spec_eq_spec,prop:raiseRaise_strong,prop:raiseStrong_length,prop:combineStrong}
80+
Let \( U \) be the strong support generated by \( T^\beta \), and let \( V \) be the support whose image is precisely those atoms in the interference of \( S_\beta \) and \( U \).
81+
Then apply \cref{prop:exists_allowable_of_spec_eq_spec,prop:raiseRaise_strong,prop:raiseStrong_length,prop:combineStrong}.
7182
\end{proof}
7283

7384
\section{Tangled type theory}

blueprint/src/chapters/model_theory.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -104,4 +104,4 @@ \section{Ambiguity}
104104
Let \( L \) be an \( \mathbb N \)-language.
105105
A \emph{type raising morphism} is a map of languages \( L \xrightarrow{\newoperator{succ}} L \), where \( \newoperator{succ} : \mathbb N \to \mathbb N \) is the successor function.
106106
\end{definition}
107-
TODO
107+
The remainder of this chapter is left unfinished until we finish the main part of the project.

blueprint/src/content.tex

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,10 +30,6 @@ \chapter{Model theory and verifying \texorpdfstring{\( \Con(\NF) \)}{Con(NF)}}
3030
\label{c:model_theory}
3131
\input{chapters/model_theory.tex}
3232

33-
\chapter{Conclusion}
34-
\label{c:conclusion}
35-
\input{chapters/conclusion.tex}
36-
3733
\appendix
3834
\chapter{Auxiliary results}
3935
\label{c:auxiliary}

0 commit comments

Comments
 (0)