Skip to content

basics of realizability #482

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Draft
wants to merge 12 commits into
base: main
Choose a base branch
from
Draft

basics of realizability #482

wants to merge 12 commits into from

Conversation

plt-amy
Copy link
Member

@plt-amy plt-amy commented Apr 2, 2025

No description provided.

@plt-amy plt-amy requested a review from TOTBWF April 2, 2025 19:19
@Lavenza
Copy link
Member

Lavenza commented Apr 2, 2025

@plt-amy plt-amy force-pushed the aliao/realisability branch from eb32396 to cfd3865 Compare April 3, 2025 16:57
@plt-amy plt-amy force-pushed the aliao/realisability branch from 70eb62d to 0866ba8 Compare April 9, 2025 11:17
@ncfavier ncfavier self-requested a review April 9, 2025 13:29
the information of whether the number is zero and its predecessor (if
any). These implementations are extensionally identical, in that they
both denote the same actual natural number, but for a concrete pca $\bA$,
they might genuinely be different --- we could imagine measuring the
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add a bit here explaining why they could be different: EG, the source code is literally not the same.

the only possible choice: we could, for example, invert the realisers,
and say that the value `true`{.Agda} is implemented by the *program*
$\tt{false}$ (and vice-versa). This results in a genuinely different
assembly over `Bool`{.Agda}, though with the same denotational data.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should probably spend some more time here emphasizing that the realizability relation of an assembly views elements of the PCA as values, and not computations. IME this is where people start to get really confused; PCAs are untyped soup, so it's easy to get mislead into thinking about an element of a PCA as source code when you should think about it as a function and vice versa.

```
-->

To understand the difference --- and similarity --- between the ordinary
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Emphasizing the role of the propositional truncation is good, but we should probably do that after we define the maps and provide some intuition.

In particular, we should mention that maps of assemblies are "A-computable functions that preserve denotations", and that this is a place where we want to think about an element of the PCA as a computation instead of data.

computable functions, since a realiser for $f : \nabla X \to (Y,
\Vdash)$ would have to choose realisers for $f(x)$ given no information
about $x$. Indeed, we can show that if there are non-constant maps
$\nabla \{0, 1\} \to \tt{2}$, then $\bA$ is [[trivial|trivial pca]].
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would be good to call this out as a version of Rice's theorem, EG: there are no A-decidable properties of programs written inside of a non-trivia PCA A.

@plt-amy plt-amy force-pushed the aliao/realisability branch from 0866ba8 to 97376da Compare April 16, 2025 12:09
@plt-amy plt-amy force-pushed the aliao/realisability branch from 97376da to 9188d20 Compare May 6, 2025 13:26
@plt-amy plt-amy force-pushed the aliao/realisability branch from 9188d20 to 8044c32 Compare May 6, 2025 14:20
@plt-amy plt-amy force-pushed the aliao/realisability branch from debe692 to 19c6dc3 Compare May 6, 2025 18:10
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants