From a1d847d5113a0c444e392b5a452c5b458ea25177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Javier=20D=C3=ADaz?= Date: Thu, 19 Sep 2019 12:21:47 -0300 Subject: [PATCH] Implement rewrite step 3: Diamond closure --- ...pt_Forwarding_Broadcasting_Equivalence.thy | 281 ++++++++++++++++++ 1 file changed, 281 insertions(+) diff --git a/Isabelle/Chi_Calculus_Examples/Filtering_On_Receipt_Forwarding_Broadcasting_Equivalence.thy b/Isabelle/Chi_Calculus_Examples/Filtering_On_Receipt_Forwarding_Broadcasting_Equivalence.thy index 7fd8826..5ab0894 100644 --- a/Isabelle/Chi_Calculus_Examples/Filtering_On_Receipt_Forwarding_Broadcasting_Equivalence.thy +++ b/Isabelle/Chi_Calculus_Examples/Filtering_On_Receipt_Forwarding_Broadcasting_Equivalence.thy @@ -859,6 +859,22 @@ abbreviation buffered_relaying_diamond where l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 )" +abbreviation strongly_connected_network where + "strongly_connected_network r\<^sub>0 s\<^sub>0 r\<^sub>1 s\<^sub>1 r\<^sub>2 s\<^sub>2 r\<^sub>3 s\<^sub>3 \ \ + \ l\<^sub>0\<^sub>1 l\<^sub>0\<^sub>2 l\<^sub>1\<^sub>3 l\<^sub>2\<^sub>3 l\<^sub>3\<^sub>0. ( + \\<^sup>*l\<^sub>0\<^sub>1 \ \\<^sup>*l\<^sub>0\<^sub>2 \ \\<^sup>*l\<^sub>1\<^sub>3 \ \\<^sup>*l\<^sub>2\<^sub>3 \ \\<^sup>*l\<^sub>3\<^sub>0 \ + \ \node 0\ \ ib\<^sub>0 ob\<^sub>0. ( + s\<^sub>0 \ ob\<^sub>0 \ ob\<^sub>0 \ [l\<^sub>0\<^sub>1, l\<^sub>0\<^sub>2] \ l\<^sub>3\<^sub>0 \ ib\<^sub>0 \ ib\<^sub>0 {\}\ [r\<^sub>0, ob\<^sub>0] \ ib\<^sub>0 {\}\ ob\<^sub>0) \ + \ \node 1\ \ ib\<^sub>1 ob\<^sub>1. ( + s\<^sub>1 \ ob\<^sub>1 \ ob\<^sub>1 \ [l\<^sub>1\<^sub>3] \ l\<^sub>0\<^sub>1 \ ib\<^sub>1 \ ib\<^sub>1 {\}\ [r\<^sub>1, ob\<^sub>1] \ ib\<^sub>1 {\}\ ob\<^sub>1) \ + \ \node 2\ \ ib\<^sub>2 ob\<^sub>2. ( + s\<^sub>2 \ ob\<^sub>2 \ ob\<^sub>2 \ [l\<^sub>2\<^sub>3] \ l\<^sub>0\<^sub>2 \ ib\<^sub>2 \ ib\<^sub>2 {\}\ [r\<^sub>2, ob\<^sub>2] \ ib\<^sub>2 {\}\ ob\<^sub>2) \ + \ \node 3\ \ ib\<^sub>3 ob\<^sub>3. ( + s\<^sub>3 \ ob\<^sub>3 \ ob\<^sub>3 \ [l\<^sub>3\<^sub>0] \ l\<^sub>1\<^sub>3 \ ib\<^sub>3 \ l\<^sub>2\<^sub>3 \ ib\<^sub>3 \ ib\<^sub>3 {\}\ [r\<^sub>3, ob\<^sub>3] \ ib\<^sub>3 {\}\ ob\<^sub>3) \ + l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\{\} l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\{\} l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\{\} l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>1\<^sub>3 \ + l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\{\} l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\{\} l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\{\} l\<^sub>2\<^sub>3 + )" + abbreviation broadcast where "broadcast r\<^sub>0 s\<^sub>0 r\<^sub>1 s\<^sub>1 r\<^sub>2 s\<^sub>2 r\<^sub>3 s\<^sub>3 \ \ \ m. ( @@ -1152,6 +1168,212 @@ proof - finally show ?thesis . qed +(* FIXME: Move this lemma to a common place for reuse. *) +lemma diamond_closure: + shows " + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>2\<^sub>3" +proof - + have " + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>1\<^sub>3" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3" + using natural_simps by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ + l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ + l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>2\<^sub>3" + using unidirectional_bridge_shortcut_redundancy by equivalence + also have " + \ + \\<^sub>\ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>2\<^sub>3" + using natural_simps by equivalence + finally show ?thesis . +qed + theorem diamond_collapse: " \\<^sup>?r\<^sub>0 \ \\<^sup>?r\<^sub>1 \ \\<^sup>?r\<^sub>2 \ \\<^sup>?r\<^sub>3 \ diamond r\<^sub>0 s\<^sub>0 r\<^sub>1 s\<^sub>1 r\<^sub>2 s\<^sub>2 r\<^sub>3 s\<^sub>3 \ \\<^sub>\ @@ -1294,6 +1516,65 @@ proof - \\<^sub>\ \\<^sup>?r\<^sub>0 \ \\<^sup>?r\<^sub>1 \ \\<^sup>?r\<^sub>2 \ \\<^sup>?r\<^sub>3 \ buffered_relaying_diamond r\<^sub>0 s\<^sub>0 r\<^sub>1 s\<^sub>1 r\<^sub>2 s\<^sub>2 r\<^sub>3 s\<^sub>3 \" unfolding tagged_new_channel_def .. + also have " + \ + \\<^sub>\ + \\<^sup>?r\<^sub>0 \ \\<^sup>?r\<^sub>1 \ \\<^sup>?r\<^sub>2 \ \\<^sup>?r\<^sub>3 \ \0\ \ l\<^sub>0\<^sub>1. \1\ \ l\<^sub>0\<^sub>2. \2\ \ l\<^sub>1\<^sub>3. \3\ \ l\<^sub>2\<^sub>3. \4\ \ l\<^sub>3\<^sub>0. ( + \\<^sup>*l\<^sub>0\<^sub>1 \ \\<^sup>*l\<^sub>0\<^sub>2 \ \\<^sup>*l\<^sub>1\<^sub>3 \ \\<^sup>*l\<^sub>2\<^sub>3 \ \\<^sup>*l\<^sub>3\<^sub>0 \ + \ ib\<^sub>0 ob\<^sub>0. ( + s\<^sub>0 \ ob\<^sub>0 \ ob\<^sub>0 \ [l\<^sub>0\<^sub>1, l\<^sub>0\<^sub>2] \ l\<^sub>3\<^sub>0 \ ib\<^sub>0 \ ib\<^sub>0 {\}\ [r\<^sub>0, ob\<^sub>0] \ ib\<^sub>0 {\}\ ob\<^sub>0) \ + \ ib\<^sub>1 ob\<^sub>1. ( + s\<^sub>1 \ ob\<^sub>1 \ ob\<^sub>1 \ [l\<^sub>1\<^sub>3] \ l\<^sub>0\<^sub>1 \ ib\<^sub>1 \ ib\<^sub>1 {\}\ [r\<^sub>1, ob\<^sub>1] \ ib\<^sub>1 {\}\ ob\<^sub>1) \ + \ ib\<^sub>2 ob\<^sub>2. ( + s\<^sub>2 \ ob\<^sub>2 \ ob\<^sub>2 \ [l\<^sub>2\<^sub>3] \ l\<^sub>0\<^sub>2 \ ib\<^sub>2 \ ib\<^sub>2 {\}\ [r\<^sub>2, ob\<^sub>2] \ ib\<^sub>2 {\}\ ob\<^sub>2) \ + \ ib\<^sub>3 ob\<^sub>3. ( + s\<^sub>3 \ ob\<^sub>3 \ ob\<^sub>3 \ [l\<^sub>3\<^sub>0] \ l\<^sub>1\<^sub>3 \ ib\<^sub>3 \ l\<^sub>2\<^sub>3 \ ib\<^sub>3 \ ib\<^sub>3 {\}\ [r\<^sub>3, ob\<^sub>3] \ ib\<^sub>3 {\}\ ob\<^sub>3) \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 + )" + unfolding tagged_new_channel_def .. + also have " + \ + \\<^sub>\ + \\<^sup>?r\<^sub>0 \ \\<^sup>?r\<^sub>1 \ \\<^sup>?r\<^sub>2 \ \\<^sup>?r\<^sub>3 \ \0\ \ l\<^sub>0\<^sub>1. \1\ \ l\<^sub>0\<^sub>2. \2\ \ l\<^sub>1\<^sub>3. \3\ \ l\<^sub>2\<^sub>3. \4\ \ l\<^sub>3\<^sub>0. ( + \\<^sup>*l\<^sub>0\<^sub>1 \ \\<^sup>*l\<^sub>0\<^sub>2 \ \\<^sup>*l\<^sub>1\<^sub>3 \ \\<^sup>*l\<^sub>2\<^sub>3 \ \\<^sup>*l\<^sub>3\<^sub>0 \ + \ ib\<^sub>0 ob\<^sub>0. ( + s\<^sub>0 \ ob\<^sub>0 \ ob\<^sub>0 \ [l\<^sub>0\<^sub>1, l\<^sub>0\<^sub>2] \ l\<^sub>3\<^sub>0 \ ib\<^sub>0 \ ib\<^sub>0 {\}\ [r\<^sub>0, ob\<^sub>0] \ ib\<^sub>0 {\}\ ob\<^sub>0) \ + \ ib\<^sub>1 ob\<^sub>1. ( + s\<^sub>1 \ ob\<^sub>1 \ ob\<^sub>1 \ [l\<^sub>1\<^sub>3] \ l\<^sub>0\<^sub>1 \ ib\<^sub>1 \ ib\<^sub>1 {\}\ [r\<^sub>1, ob\<^sub>1] \ ib\<^sub>1 {\}\ ob\<^sub>1) \ + \ ib\<^sub>2 ob\<^sub>2. ( + s\<^sub>2 \ ob\<^sub>2 \ ob\<^sub>2 \ [l\<^sub>2\<^sub>3] \ l\<^sub>0\<^sub>2 \ ib\<^sub>2 \ ib\<^sub>2 {\}\ [r\<^sub>2, ob\<^sub>2] \ ib\<^sub>2 {\}\ ob\<^sub>2) \ + \ ib\<^sub>3 ob\<^sub>3. ( + s\<^sub>3 \ ob\<^sub>3 \ ob\<^sub>3 \ [l\<^sub>3\<^sub>0] \ l\<^sub>1\<^sub>3 \ ib\<^sub>3 \ l\<^sub>2\<^sub>3 \ ib\<^sub>3 \ ib\<^sub>3 {\}\ [r\<^sub>3, ob\<^sub>3] \ ib\<^sub>3 {\}\ ob\<^sub>3) \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>3\<^sub>0 \ + l\<^sub>0\<^sub>1 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>0\<^sub>2 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>2\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>2 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>0\<^sub>1 \ l\<^sub>2\<^sub>3 {\}\ l\<^sub>1\<^sub>3 \ + l\<^sub>3\<^sub>0 {\}\ l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\ l\<^sub>2\<^sub>3 + )" + using diamond_closure by equivalence + (* FIXME: The following two steps are not strictly necessary, they're there so we can use + `strongly_connected_network` as an aid to the reader. Discuss if this is really useful. *) + also have " + \ + \\<^sub>\ + \\<^sup>?r\<^sub>0 \ \\<^sup>?r\<^sub>1 \ \\<^sup>?r\<^sub>2 \ \\<^sup>?r\<^sub>3 \ \0\ \ l\<^sub>0\<^sub>1. \1\ \ l\<^sub>0\<^sub>2. \2\ \ l\<^sub>1\<^sub>3. \3\ \ l\<^sub>2\<^sub>3. \4\ \ l\<^sub>3\<^sub>0. ( + \\<^sup>*l\<^sub>0\<^sub>1 \ \\<^sup>*l\<^sub>0\<^sub>2 \ \\<^sup>*l\<^sub>1\<^sub>3 \ \\<^sup>*l\<^sub>2\<^sub>3 \ \\<^sup>*l\<^sub>3\<^sub>0 \ + \ ib\<^sub>0 ob\<^sub>0. ( + s\<^sub>0 \ ob\<^sub>0 \ ob\<^sub>0 \ [l\<^sub>0\<^sub>1, l\<^sub>0\<^sub>2] \ l\<^sub>3\<^sub>0 \ ib\<^sub>0 \ ib\<^sub>0 {\}\ [r\<^sub>0, ob\<^sub>0] \ ib\<^sub>0 {\}\ ob\<^sub>0) \ + \ ib\<^sub>1 ob\<^sub>1. ( + s\<^sub>1 \ ob\<^sub>1 \ ob\<^sub>1 \ [l\<^sub>1\<^sub>3] \ l\<^sub>0\<^sub>1 \ ib\<^sub>1 \ ib\<^sub>1 {\}\ [r\<^sub>1, ob\<^sub>1] \ ib\<^sub>1 {\}\ ob\<^sub>1) \ + \ ib\<^sub>2 ob\<^sub>2. ( + s\<^sub>2 \ ob\<^sub>2 \ ob\<^sub>2 \ [l\<^sub>2\<^sub>3] \ l\<^sub>0\<^sub>2 \ ib\<^sub>2 \ ib\<^sub>2 {\}\ [r\<^sub>2, ob\<^sub>2] \ ib\<^sub>2 {\}\ ob\<^sub>2) \ + \ ib\<^sub>3 ob\<^sub>3. ( + s\<^sub>3 \ ob\<^sub>3 \ ob\<^sub>3 \ [l\<^sub>3\<^sub>0] \ l\<^sub>1\<^sub>3 \ ib\<^sub>3 \ l\<^sub>2\<^sub>3 \ ib\<^sub>3 \ ib\<^sub>3 {\}\ [r\<^sub>3, ob\<^sub>3] \ ib\<^sub>3 {\}\ ob\<^sub>3) \ + l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>3\<^sub>0 \ l\<^sub>0\<^sub>2 {\}\{\} l\<^sub>3\<^sub>0 \ l\<^sub>3\<^sub>0 {\}\{\} l\<^sub>1\<^sub>3 \ l\<^sub>3\<^sub>0 {\}\{\} l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>1\<^sub>3 \ + l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>0\<^sub>2 \ l\<^sub>0\<^sub>1 {\}\{\} l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\{\} l\<^sub>2\<^sub>3 \ l\<^sub>0\<^sub>2 {\}\{\} l\<^sub>1\<^sub>3 \ l\<^sub>1\<^sub>3 {\}\{\} l\<^sub>2\<^sub>3 + )" + unfolding bidirectional_bridge_def using natural_simps by equivalence + also have " + \ + \\<^sub>\ + \\<^sup>?r\<^sub>0 \ \\<^sup>?r\<^sub>1 \ \\<^sup>?r\<^sub>2 \ \\<^sup>?r\<^sub>3 \ strongly_connected_network r\<^sub>0 s\<^sub>0 r\<^sub>1 s\<^sub>1 r\<^sub>2 s\<^sub>2 r\<^sub>3 s\<^sub>3 \" + unfolding tagged_new_channel_def .. finally show ?thesis sorry qed