apg.jpg
The set V of typed values are terms in the following grammar:
v:t::=():1∣inlt2​​(v:t1​):t1​+t2​∣inrt1​​(v:t2​):t1​+t2​∣(v1​:t1​,v2​:t2​):t1​×t2​∣ Prim vt​:t(t∈P,v∈PV(p))∣ Elmt e:λ(e)(e∈(E)
This says:
- There is a set V whose elements are values
- Each value of V has a type t.
- This is written v:t.
- This collection of types is denoted T.
- v can be of any of the following types:
- The unit type 1
- The sum type t1​+t2​, where t1,t2 are types in T.
- The product type t1​×t2​.
- The primitive type t
- The label type λ(e), for an element e
Looking at the whole picture:
- You have a schema S, which is a pair (L,σ). L is a set of labels, and σ assigns each label to a type. Thus, a schema is a bunch of typed labels. Your labels could be “Car”, “Elizabeth”, “meets”. The only types are unit, sum, product, primitive, and label; so I guess σ might assign individuals to 1, essential concepts to “primitive”, any sort of function, relation or grouping to a product type, any sort of “optional grouping” to a sum type, and I’m not sure what the label type is doing in there, since the labels should be in L, whereas all these other typed values should be in V.
2.jpg
-
You have elements.
-
You map elements to their labels.
-
You map values to their types.
-
You map elements to their values.
And I guess the takeaway here is that our labels have type annotations, and our values have type annotations, and every element has a label and a value.
Is this correct?
sounds about right. there are some built-in examples in the CQL IDE ('APG' being the name of the example)
Thanks.
These conjectures are unproven?
3.jpg
I'm not sure. @Joshua Meyers would be the person to ask. An earlier version of the paper had a bunch of relatively easy theorems proved in Coq, https://arxiv.org/pdf/1909.04881v1 , and then in attempt to connect the work to Poly, which would have made for cooler theorems, progress stalled out, for reasons I don't remember but might be Coq related and not math related.