Skip to content

Commit f03b76d

Browse files
authored
Merge pull request #629 from stepchowfun/readme-wordsmithing
Wordsmith the admissibility graph README
2 parents c7cb5e0 + 4de314c commit f03b76d

File tree

2 files changed

+11
-11
lines changed

2 files changed

+11
-11
lines changed

proofs/admissibility_graph/README.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -20,11 +20,11 @@ To make those informal descriptions more precise, the following axioms determine
2020
- If some `Z` is allowed to depend on `X`, then `Z` is also allowed to depend on `Y`.
2121
4. No other dependencies are allowed.
2222

23-
The *transpose* of an admissibility graph is the graph formed by swapping the edge types`X trusts Y` becomes `X exports Y` and vice versa.
23+
The *transpose* of an admissibility graph is the graph formed by swapping the edge types; `X trusts Y` becomes `X exports Y` and vice versa.
2424

2525
## Wooden admissibility graphs
2626

27-
If `X trusts Y` or `X exports Y`, we say `X` is a *parent* of `Y` and `Y` is a *child* of `X`. An important special case which enables additional reasoning power at the expense of flexibility is to limit each node to having at most one parent. The resulting structure is called a *wooden admissibility graph*.
27+
If `X trusts Y` or `X exports Y`, we say `X` is a *parent* of `Y` and `Y` is a *child* of `X`. An important special case which enables additional reasoning power at the expense of flexibility is to limit each node to having at most one parent. The resulting structure is called a *wooden admissibility graph*, and it enjoys the *encapsulation* and *sandboxing* theorems below.
2828

2929
## Closure concepts
3030

@@ -42,9 +42,9 @@ This development contains verified proofs of the following theorems:
4242

4343
**Theorem (reflection).** Given two admissibility graphs with the same nodes that have matching edges between all pairs of *distinct* nodes, then they allow the same dependencies. In other words, nothing is gained by having a node trust or export itself.
4444

45-
**Theorem (admission).** `X` is allowed to depend on `Y` [iff](https://en.wikipedia.org/wiki/If_and_only_if) there some `U` is trusting of `X` and some `V` is exporting `Y` and `U` = `V` or there is an edge `U trusts V` or `V exports U`.
45+
**Theorem (admission).** `X` is allowed to depend on `Y` iff there some `U` is trusting of `X` and some `V` is exporting `Y` and `U` = `V` or there is an edge `U trusts V` or `V exports U`.
4646

47-
**Theorem (transposition).** Given an admissibility graph `G`, `G` allows `X` to depend on `Y` iff the transpose of `G` allows `Y` to depend on `X`.
47+
**Theorem (duality).** Given an admissibility graph `G`, `G` allows `X` to depend on `Y` iff the transpose of `G` allows `Y` to depend on `X`.
4848

4949
**Theorem (encapsulation).** In a wooden admissibility graph, if `X` is a parent of `Y` and `Z` is allowed to depend on `Y`, then either `X` is an ancestor of `Z` or (`X exports Y` and `Z` is allowed to depend on `X`).
5050

proofs/admissibility_graph/admissibility_graph.v

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -182,14 +182,14 @@ Qed.
182182
of the dependencies allowed by the original graph.
183183
*)
184184

185-
Theorem transposition :
185+
Theorem duality :
186186
forall (Node : Type) (g : AdmissibilityGraph Node) n1 n2,
187187
Allowed g n1 n2 <-> Allowed (transpose g) n2 n1.
188188
Proof.
189189
split; clean; induction H; esearch.
190190
Qed.
191191

192-
#[export] Hint Resolve transposition : main.
192+
#[export] Hint Resolve duality : main.
193193

194194
(*
195195
If a node trusts or exports another node, we say the former node is a
@@ -434,19 +434,19 @@ Proof.
434434
destruct H2.
435435
clear H3.
436436
feed H2.
437-
+ apply -> transposition.
437+
+ apply -> duality.
438438
search.
439439
+ clean.
440440
rewrite <- transpose_exporting in H2.
441441
repeat (destruct H2; search).
442-
apply transposition in H3.
442+
apply duality in H3.
443443
search.
444444
- pose proof (childIngress Node (transpose g) n1 n2 n3).
445445
feed H2; [ apply -> transpose_wooden; search | idtac ].
446446
feed H2; [ apply -> transpose_parent_child; search | idtac ].
447447
destruct H2.
448448
clear H2.
449-
apply transposition in H3; search.
449+
apply duality in H3; search.
450450
Qed.
451451

452452
#[export] Hint Resolve childEgress : main.
@@ -469,12 +469,12 @@ Proof.
469469
pose proof (encapsulation Node (transpose g) n1 n2 n3).
470470
feed H2; [ apply -> transpose_wooden; search | idtac ].
471471
feed H2; [ apply -> transpose_parent_child; search | idtac ].
472-
feed H2; [ apply -> transposition; search | idtac ].
472+
feed H2; [ apply -> duality; search | idtac ].
473473
destruct H2.
474474
- apply transpose_ancestor in H2.
475475
search.
476476
- clean.
477-
apply transposition in H3.
477+
apply duality in H3.
478478
search.
479479
Qed.
480480

0 commit comments

Comments
 (0)