From 637a13d7e9a3d178613428d23adb18aa58751308 Mon Sep 17 00:00:00 2001 From: Alan Lawrence Date: Wed, 15 May 2024 23:19:06 +0100 Subject: [PATCH] spec: fix bounds on j, also apply to Ext edges --- specification/hugr.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/specification/hugr.md b/specification/hugr.md index ebcb599ce..5f07fb276 100644 --- a/specification/hugr.md +++ b/specification/hugr.md @@ -557,7 +557,7 @@ Each of these localities have additional constraints as follows: parenti(n2) for some i\>1, *and* for Value edges only: * there must be a order edge from n1 to parenti-1(n2). - * None of the parentj(n2), for 1\>=j\>i, + * None of the parentj(n2), for i\>j\>=1, may be a FuncDefn node The order edge records the @@ -582,6 +582,8 @@ Each of these localities have additional constraints as follows: i\>1 allows the node to target an arbitrarily-deep descendant of the dominated block, similar to an Ext edge.) + The same FuncDefn restriction also applies here, on the parent(j)(n2) for i\>j\>=1 (of course j=i is the CFG and j=i-1 is the basic block). + Specifically, these rules allow for edges where in a given execution of the HUGR the source of the edge executes once, but the target may execute \>=0 times.