Thank you @AHart for your close attention to this document. I have read your comments and acted on all of them. Responses follow below.
In 5. of Definition 2.1.4, we read βββ₯0β. Is this different from just βββ? You freely use βββ in 5. of definition 2.2.1.
Same thing. I forgot to add a notation for this. This is now Notation 2.1.2.
The letter πΎ is used as a variable for datatypes, but isnβt declared to be a variable for such in definition 2.1.5.
Fixed, thank you.
We may freely assume standard predicate symbols, such as =, <, β€, tupling
(-, . . . , -) and projections ππ , with their usual meanings. Meaning will always be
clear.
Tupling and projections are functions, not (generally) predicates. Itβs not clear to me what they should mean if we tried interpreting them as predicates.
Typo corrected, thank you.
Unless otherwise stated, we will follow a convention that variable symbols named π and π (like π, πβ², π1, πβ²β², and so on) will have a datatype, and variable symbols of the form π may have any datatype.
Iβm not really sure what this is trying to say. Is it stating that as and bs will always have a fixed datatype given by the context in which they are used, while c will never have such? I also didnβt see anywhere in the paper where c was used as a variable (except for thresholds), so this aside doesnβt seem needed.
Legacy text removed.
f β FSymb to each of which is associated a type type(f) of the form πΎ β πΎ
What is βββ, and where is it? Itβs actually used in quite a few places. Obviously, I know itβs a function type, but thatβs not declared anywhere, and its semantics is never described. What is βtypeβ; the function youβre applying to f
?
This should now be clarified.
an interpretation function π (P) : Time β Place β πΎ β Bool
[β¦]
A function π (msg) : (N Γ Place Γ Place Γ Data) β Bool.
why is one curried and the other not? Also, some clarification/intuition on why the signature of π (msg) looks like that would be good.
Currying now consistent; thanks for pointing this out.
Intuition for signature of π(msg) inserted in Remark 2.2.2(4).
- πβπ is the model obtained by restricting π to times up to and including π.
- πβπ is the model obtained by restricting π to times from π onwards.
Does βfrom π onwardsβ include π?
Yes it does. Phrasing tweaked to make this clear.
Also, there should be some kind of formal restriction of Time (e.g. that itβs linearly ordered) so that this can always be made sense of. As it stands, you have the naturals as an archetypal example of Time, but the semantics of π just says itβs an arbitrary set.
No. Definition 2.1.5(6) identifies time with an initial segment of the natural numbers. Phrasing tweaked and remark 2.1.7(3) added to emphasise this.
[[{π | π}]]π,π,π = {π β πΌ | π, π β¨π π [π:=π]}
Where does πΌ come from?
Itβs the type of a. Fixed, thank you.
([[π‘]]π,π,π β Nβ₯#Time)/π, π β¨π @π‘ π
This is the middle-right formula of Figure 3. Where does π come from? If it is free/fresh, etc, that should be stated.
To answer the direct question, \phi is a metavariable ranging over predicates β just as in the other rules. The rule is correct as written, but confusing. I tweaked it for clarity.
but none of the examples I was given have this form
What a bizarre line to read in a paper. Who gave them to you, and why is that sufficient for dismissal?
Iβll answer the questions in turn:
- Youβre right that this turn of phrase would not belong in a paper and thank you for picking up on that β but this isnβt a paper; itβs a draft report for discussion.
- Christopher and Naqib.
- Nobodyβs dismissing anything; on the contrary. Good design is often an exercise in balancing competing needs. The beginning and end of time is notorious for causing difficulties, because βyesterdayβ and βtomorrowβ donβt have anything to point to. Based on the example service commitments that I was given, I set up the definitions to concentrate pain where it would be least felt. Itβs important to signpost
- whatβs been done (everythingβs true after the end of time and false before it),
- why (because this makes the motivating examples work nicely), and
- where this may lead to dangerous edge cases (example provided that would work poorly, but this seems safe because in practice nobody would want this).
I have slightly rephrased the comment. If you can come up with a realistically useful service commitment of the form βif you do something tomorrow then Iβll do something todayβ, then please let me know.
π΅ = {π β πΌ | π, π β¨π π [π:=π]} π΄ = {π β π΅ | π, π β¨π π [π:=π]} #π΄/#π΅ β₯ π π, π β¨π Ξ π π : π.π
First formula in figure 3
[β¦]
π΅ = {π β πΌ | π, π β¨π π [π:=π]} and π΄ = {π β πΌ | π, π β¨π π [π:=π] β§ π [π:=π]}
in remark 2.3.1. Is that first A supposed to be a subset of B? Is that second A meant not to be a subset of B? If both are correct and equivalent, should the notations be made consistent?
Thank you for noting this. Both are indeed correct and equivalent. Equations tweaked in Remark 2.3.1 to make this more clear.
Threshold. To express Ξ ππ π.π using Ξ π π.π , we just write [β¦]
What is n in that formula? Presumably c?
Yes, error corrected, thank you.
Future work could explore could explore information flow control
Typo.
Thank you, fixed.
but usually that a reasonable first approximation to real life
Typo.
Thank you, fixed.
I think the paper would be improved with some better intuition early on. For example, it doesnβt seem like intuitive, straightforward explanations of @_π‘ π, in_π(π‘), or out_π(π‘) are ever made.
Youβre right. Detailed explanation inserted in Remark 2.2.5.