├── CoC.md
├── LICENSE.md
└── README.md
/CoC.md:
--------------------------------------------------------------------------------
1 | # Contributor Covenant Code of Conduct
2 |
3 | ## Our Pledge
4 |
5 | In the interest of fostering an open and welcoming environment, we as
6 | contributors and maintainers pledge to making participation in our project and
7 | our community a harassment-free experience for everyone, regardless of age, body
8 | size, disability, ethnicity, gender identity and expression, level of experience,
9 | education, socio-economic status, nationality, personal appearance, race,
10 | religion, or sexual identity and orientation.
11 |
12 | ## Our Standards
13 |
14 | Examples of behavior that contributes to creating a positive environment
15 | include:
16 |
17 | * Using welcoming and inclusive language
18 | * Being respectful of differing viewpoints and experiences
19 | * Gracefully accepting constructive criticism
20 | * Focusing on what is best for the community
21 | * Showing empathy towards other community members
22 |
23 | Examples of unacceptable behavior by participants include:
24 |
25 | * The use of sexualized language or imagery and unwelcome sexual attention or
26 | advances
27 | * Trolling, insulting/derogatory comments, and personal or political attacks
28 | * Public or private harassment
29 | * Publishing others' private information, such as a physical or electronic
30 | address, without explicit permission
31 | * Other conduct which could reasonably be considered inappropriate in a
32 | professional setting
33 |
34 | ## Our Responsibilities
35 |
36 | Project maintainers are responsible for clarifying the standards of acceptable
37 | behavior and are expected to take appropriate and fair corrective action in
38 | response to any instances of unacceptable behavior.
39 |
40 | Project maintainers have the right and responsibility to remove, edit, or
41 | reject comments, commits, code, wiki edits, issues, and other contributions
42 | that are not aligned to this Code of Conduct, or to ban temporarily or
43 | permanently any contributor for other behaviors that they deem inappropriate,
44 | threatening, offensive, or harmful.
45 |
46 | ## Scope
47 |
48 | This Code of Conduct applies both within project spaces and in public spaces
49 | when an individual is representing the project or its community. Examples of
50 | representing a project or community include using an official project e-mail
51 | address, posting via an official social media account, or acting as an appointed
52 | representative at an online or offline event. Representation of a project may be
53 | further defined and clarified by project maintainers.
54 |
55 | ## Enforcement
56 |
57 | Instances of abusive, harassing, or otherwise unacceptable behavior may be
58 | reported by contacting the project team at wjb@williamjbowman.com. All
59 | complaints will be reviewed and investigated and will result in a response that
60 | is deemed necessary and appropriate to the circumstances. The project team is
61 | obligated to maintain confidentiality with regard to the reporter of an incident.
62 | Further details of specific enforcement policies may be posted separately.
63 |
64 | Project maintainers who do not follow or enforce the Code of Conduct in good
65 | faith may face temporary or permanent repercussions as determined by other
66 | members of the project's leadership.
67 |
68 | ## Attribution
69 |
70 | This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
71 | available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
72 |
73 | [homepage]: https://www.contributor-covenant.org
74 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | 
This work is licensed under a Creative Commons Attribution 4.0 International License.
2 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # A Thesaurus For Programming Languages Jargon
2 |
3 |
4 | For now, this is list of synonyms for technical words that I want to stop
5 | keeping in my head and allow people to publicly contribute to/comment on.
6 | Maybe one day I'll turn it into structured data that a tool can consume.
7 |
8 | There's also a wiki for discussion: https://github.com/wilbowma/pl-thesaurus/wiki
9 |
10 | # Thesaurus
11 |
12 | - dependent function type, pi type, dependent product type, universal quantifier
13 | - This may be at odds with one's intuition, since, in non-dependent settings, product type can mean pair.
14 | It may help to note that we can implement (lazy) "product types" as a function from a tag to either the first or second component, whose type depends on the tag---that is, product types can be implemented with as a dependent functions (with `bool`, `if`, and large elimination).
15 | ```
16 | A * B = Pi (x : bool) (if x then A else B)
17 | pi_1 M = M true
18 | pi_2 M = M false
19 | (M_1,M_2) = lambda x. if x then M_1 else M_2
20 | ```
21 | - dependent pair type, sigma type, dependent sum type, existential quantifier, subset type, refinement type
22 | - This may be at odds with one's intuition, since, in non-dependent settings, sum type can mean tagged union.
23 | It may help to note that we can implement sum types as a pair of a tag plus its computational content, whose types depends
24 | on its tag---that is, sum types can be implemented with dependent pairs (with `bool`, `if`, and large elimination).
25 | ```
26 | A + B = Sigma (x: bool) (if x then A else B)'
27 | inl y = (true, y)
28 | inr z = (false, z)
29 | case x of { inl y -> M | inr z -> N } = if (pi_1 x) then (M[pi_2 x]) else (N[pi_2 x])
30 | ```
31 | - pair (type), product (type), tuple (type)
32 | - sum (type), disjoint union (type), tagged union (type), variant (type), coproduct (type)
33 | - dependent types, type dependency
34 | - The latter form can be confusing because dependency has been used to refer to information flow, as in the Dependency Core Calculus.
35 | - certifying compilation, translation validation
36 | - Adjunction
37 | - When the categories are Posets, an adjunction is called a *Galois connection*
38 | - Monad, (Kleisli) triple, S4 possibility modality
39 | - When the category is a poset, a monad is called a *closure operator*
40 | - Strong Monad, S4 lax modality
41 | - Comonad, S4 necessity modality
42 | - When the category is a poset, a comonad is called an *interior operator*
43 | - Coreflection
44 | - When the categories are posets, it is called a Galois Insertion or Galois Injection
45 | - When the posets are domains/cpos, it is called an *embedding-projection pair*
46 | - Reflection (category theory)
47 | - when the categories are posets, it is called a Galois Surjection
48 | - Right adjoint (category theory)
49 | - In order theory, the right adjoint of a Galois connection is called the *upper adjoint*
50 | - In abstract interpretation, the right adjoint of a Galois connection is called the *Concretization function*
51 | - Left adjoint (category theory)
52 | - In order theory, the left adjoint of a Galois connection is called the *lower adjoint*
53 | - In abstract interpretation, the left adjoint of a Galois connection is called the *abstraction function*
54 | - metavariable, unification variable, flexible variable
55 | - variable, program variable, rigid variable
56 | - polymorphic instantiation, first-class polymorphism, impredicative polymorphism, impredicativity
57 | - This refers to being able to write types like `List (forall a. a -> a)`
58 | - While in common usage, 'impredicative polymorphism' and especially 'impredicativity' can be confused with 'impredicative universes', so is discouraged by some
59 | - impredicative universes, impredicativity
60 | - ⊤⊤-closure, ⊥⊥-closure, biorthogonality
61 | - axiom K, equivalence reflection, propositional extensionality
62 |
63 | # References
64 |
65 | - Intuitionistic S4 Modal Type Theory
66 | - [Pfenning and Davies, A Judgmental Reconstruction of Modal Logic](https://www.cs.cmu.edu/~fp/papers/mscs00.pdf)
67 |
--------------------------------------------------------------------------------