An Introduction to Nominal Sets
Andrew Pitus
Computer Science & Technology
EWSCS 2020
1/70
An Introduction to Nominal Sets Andrew Pi tu s Computer Science - - PowerPoint PPT Presentation
An Introduction to Nominal Sets Andrew Pi tu s Computer Science & Technology EWSCS 2020 1/70 An introduction to nominal techniques motivated by Programming language semantics/verification Constructive type theory for theorem-provers
Computer Science & Technology
EWSCS 2020
1/70
(leaving out motivations from Automata theory, alas)
2/70
‘A pure [atomic] name is nothing but a bit-patuern that is an identifier, and is only useful for comparing for identity with other such bit-patuerns — which includes looking up in tables to find other information. The intended contrast is with names which yield information by examination of the names themselves, whether by reading the text of the name or otherwise. ...like most good things in computer science, pure names help by putuing in an extra stage of indirection; but they are not much good for anything else.’ RM Needham, Names (ACM, 1989) p 90
3/70
◮ Local variables in Algol-like languages: new 푋 in ⟨command⟩ ◮ Generativity + local declarations in ML-like languages: let 푥 = ref⟨val⟩ in ⟨exp⟩ ◮ Channel-name restriction in 휋-like process calculi: (휈푎)⟨process⟩ ◮ Use of fresh names in meta-programming/reasoning, e.g. A-nf(푒1 푒2) let 푣1 = 푒1, 푣2 = 푒2 in 푣1 푣2 where 푣1 푣2 are fresh variables
4/70
◮ Local variables in Algol-like languages: new 푋 in ⟨command⟩ ◮ Generativity + local declarations in ML-like languages: let 푥 = ref⟨val⟩ in ⟨exp⟩ ◮ Channel-name restriction in 휋-like process calculi: (휈푎)⟨process⟩ ◮ Use of fresh names in meta-programming/reasoning, e.g. A-nf(푒1 푒2) let 푣1 = 푒1, 푣2 = 푒2 in 푣1 푣2 where 푣1 푣2 are fresh variables
4/70
5/70
The mathematics behind nominal sets goes back a long way...
Abraham Fraenkel, Der Begrifg “definit” und die Unabh¨ angigkeit des Auswahlsaxioms, Sitzungsberichte der Preussischen Akademie der Wissenschafuen, Physikalisch-mathematische Klasse (1922), 253–257. Andrzej Mostowski, Uber die Unabh¨ angigkeit des Wohlordnungssatzes vom Ordnungsprinzip, Fundamenta Mathematicae 32 (1939), 201–252.
6/70
References: AMP, Nominal Sets: Names and Symmetry in Computer Science, CUP 2013 AMP, Alpha-Structural Recursion and Induction, JACM 53(2006)459-506. AMP, J. Matuhiesen and J. Derikx, A Dependent Type Theory with Abstractable Names, ENTCS 312(2015)19-50.
7/70
8/70
9/70
letrec f x = if x > 100 then x − 10 else f ( f ( x + 11 ) ) in f ( x + 100 )
10/70
11/70
12/70
13/70
14/70
15/70
16/70
16/70
17/70
17/70
1
2
1,푡′ 2)
E.g. A(L(푎, A(V푎, V푏)), V푐) =훼 A(L(푐, A(V푐, V푏)), V푐) ̸=훼 A(L(푏, A(V푏, V푏)), V푐) Fact: =훼 is transitive (and reflexive & symmetric). [Ex. 1]
18/70
19/70
19/70
19/70
푎 means [V푎]훼 ( = {V푎}) 푒 푒′ means [A(푡, 푡′)]훼, where 푒 = [푡]훼 and 푒′ = [푡′]훼 휆푎.푒 means [L(푎, 푡)]훼 where 푒 = [푡]훼
19/70
20/70
푎휌 = 휌 푎 푒 푒′휌 = app(푒휌 , 푒′휌) 휆푎. 푒휌 = fun(휆(푑 ∈ 퐷) 푒(휌[푎 푑])) where
∈ 퐷 × 퐷 cts 퐷 fun ∈ (퐷 cts 퐷) cts 퐷 are continuous functions satisfying...
20/70
푎휌 = 휌 푎 푒 푒′휌 = app(푒휌 , 푒′휌) 휆푎. 푒휌 = fun(휆(푑 ∈ 퐷) 푒(휌[푎 푑])) why is this very standard definition independent of the choice of bound variable 푎? 휌[푎 푑] is the element of A 퐷 that maps 푎 to 푑 and otherwise acts like 휌
20/70
21/70
21/70
21/70
21/70
21/70
21/70