less_eq_of_match_field1_def: fixes a :: "of_match_field"   and b :: "of_match_field" shows "less_eq_of_match_field1 a b = (case (a, b) of (IngressPort aa, IngressPort ba) \<Rightarrow> aa \<le> ba | (IngressPort aa, EtherSrc word) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (EtherSrc word) | (IngressPort aa, EtherDst word) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (EtherDst word) | (IngressPort aa, EtherType word) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (EtherType word) | (IngressPort aa, VlanId word) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (VlanId word) | (IngressPort aa, VlanPriority word) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (VlanPriority word) | (IngressPort aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (IPv4Src prefix_match) | (IngressPort aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (IPv4Dst prefix_match) | (IngressPort aa, IPv4Proto word) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (IPv4Proto word) | (IngressPort aa, L4Src word1 word2) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (L4Src word1 word2) | (IngressPort aa, L4Dst word1 word2) \<Rightarrow> match_sorter (IngressPort aa) < match_sorter (L4Dst word1 word2) | (EtherSrc aa, IngressPort list) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (IngressPort list) | (EtherSrc aa, EtherSrc ba) \<Rightarrow> aa \<le> ba | (EtherSrc aa, EtherDst wordb) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (EtherDst wordb) | (EtherSrc aa, EtherType wordb) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (EtherType wordb) | (EtherSrc aa, VlanId wordb) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (VlanId wordb) | (EtherSrc aa, VlanPriority wordb) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (VlanPriority wordb) | (EtherSrc aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (IPv4Src prefix_match) | (EtherSrc aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (IPv4Dst prefix_match) | (EtherSrc aa, IPv4Proto wordb) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (IPv4Proto wordb) | (EtherSrc aa, L4Src word1 word2) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (L4Src word1 word2) | (EtherSrc aa, L4Dst word1 word2) \<Rightarrow> match_sorter (EtherSrc aa) < match_sorter (L4Dst word1 word2) | (EtherDst aa, IngressPort list) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (IngressPort list) | (EtherDst aa, EtherSrc wordb) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (EtherSrc wordb) | (EtherDst aa, EtherDst ba) \<Rightarrow> aa \<le> ba | (EtherDst aa, EtherType wordb) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (EtherType wordb) | (EtherDst aa, VlanId wordb) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (VlanId wordb) | (EtherDst aa, VlanPriority wordb) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (VlanPriority wordb) | (EtherDst aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (IPv4Src prefix_match) | (EtherDst aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (IPv4Dst prefix_match) | (EtherDst aa, IPv4Proto wordb) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (IPv4Proto wordb) | (EtherDst aa, L4Src word1 word2) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (L4Src word1 word2) | (EtherDst aa, L4Dst word1 word2) \<Rightarrow> match_sorter (EtherDst aa) < match_sorter (L4Dst word1 word2) | (EtherType aa, IngressPort list) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (IngressPort list) | (EtherType aa, EtherSrc wordb) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (EtherSrc wordb) | (EtherType aa, EtherDst wordb) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (EtherDst wordb) | (EtherType aa, EtherType ba) \<Rightarrow> aa \<le> ba | (EtherType aa, VlanId wordb) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (VlanId wordb) | (EtherType aa, VlanPriority wordb) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (VlanPriority wordb) | (EtherType aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (IPv4Src prefix_match) | (EtherType aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (IPv4Dst prefix_match) | (EtherType aa, IPv4Proto wordb) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (IPv4Proto wordb) | (EtherType aa, L4Src word1 word2) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (L4Src word1 word2) | (EtherType aa, L4Dst word1 word2) \<Rightarrow> match_sorter (EtherType aa) < match_sorter (L4Dst word1 word2) | (VlanId aa, IngressPort list) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (IngressPort list) | (VlanId aa, EtherSrc wordb) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (EtherSrc wordb) | (VlanId aa, EtherDst wordb) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (EtherDst wordb) | (VlanId aa, EtherType wordb) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (EtherType wordb) | (VlanId aa, VlanId ba) \<Rightarrow> aa \<le> ba | (VlanId aa, VlanPriority wordb) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (VlanPriority wordb) | (VlanId aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (IPv4Src prefix_match) | (VlanId aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (IPv4Dst prefix_match) | (VlanId aa, IPv4Proto wordb) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (IPv4Proto wordb) | (VlanId aa, L4Src word1 word2) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (L4Src word1 word2) | (VlanId aa, L4Dst word1 word2) \<Rightarrow> match_sorter (VlanId aa) < match_sorter (L4Dst word1 word2) | (VlanPriority aa, IngressPort list) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (IngressPort list) | (VlanPriority aa, EtherSrc wordb) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (EtherSrc wordb) | (VlanPriority aa, EtherDst wordb) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (EtherDst wordb) | (VlanPriority aa, EtherType wordb) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (EtherType wordb) | (VlanPriority aa, VlanId wordb) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (VlanId wordb) | (VlanPriority aa, VlanPriority ba) \<Rightarrow> aa \<le> ba | (VlanPriority aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (IPv4Src prefix_match) | (VlanPriority aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (IPv4Dst prefix_match) | (VlanPriority aa, IPv4Proto wordb) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (IPv4Proto wordb) | (VlanPriority aa, L4Src word1 word2) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (L4Src word1 word2) | (VlanPriority aa, L4Dst word1 word2) \<Rightarrow> match_sorter (VlanPriority aa) < match_sorter (L4Dst word1 word2) | (IPv4Src aa, IngressPort list) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (IngressPort list) | (IPv4Src aa, EtherSrc word) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (EtherSrc word) | (IPv4Src aa, EtherDst word) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (EtherDst word) | (IPv4Src aa, EtherType word) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (EtherType word) | (IPv4Src aa, VlanId word) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (VlanId word) | (IPv4Src aa, VlanPriority word) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (VlanPriority word) | (IPv4Src aa, IPv4Src ba) \<Rightarrow> aa \<le> ba | (IPv4Src aa, IPv4Dst prefix_matchb) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (IPv4Dst prefix_matchb) | (IPv4Src aa, IPv4Proto word) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (IPv4Proto word) | (IPv4Src aa, L4Src word1 word2) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (L4Src word1 word2) | (IPv4Src aa, L4Dst word1 word2) \<Rightarrow> match_sorter (IPv4Src aa) < match_sorter (L4Dst word1 word2) | (IPv4Dst aa, IngressPort list) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (IngressPort list) | (IPv4Dst aa, EtherSrc word) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (EtherSrc word) | (IPv4Dst aa, EtherDst word) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (EtherDst word) | (IPv4Dst aa, EtherType word) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (EtherType word) | (IPv4Dst aa, VlanId word) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (VlanId word) | (IPv4Dst aa, VlanPriority word) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (VlanPriority word) | (IPv4Dst aa, IPv4Src prefix_matchb) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (IPv4Src prefix_matchb) | (IPv4Dst aa, IPv4Dst ba) \<Rightarrow> aa \<le> ba | (IPv4Dst aa, IPv4Proto word) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (IPv4Proto word) | (IPv4Dst aa, L4Src word1 word2) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (L4Src word1 word2) | (IPv4Dst aa, L4Dst word1 word2) \<Rightarrow> match_sorter (IPv4Dst aa) < match_sorter (L4Dst word1 word2) | (IPv4Proto aa, IngressPort list) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (IngressPort list) | (IPv4Proto aa, EtherSrc wordb) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (EtherSrc wordb) | (IPv4Proto aa, EtherDst wordb) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (EtherDst wordb) | (IPv4Proto aa, EtherType wordb) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (EtherType wordb) | (IPv4Proto aa, VlanId wordb) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (VlanId wordb) | (IPv4Proto aa, VlanPriority wordb) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (VlanPriority wordb) | (IPv4Proto aa, IPv4Src prefix_match) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (IPv4Src prefix_match) | (IPv4Proto aa, IPv4Dst prefix_match) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (IPv4Dst prefix_match) | (IPv4Proto aa, IPv4Proto ba) \<Rightarrow> aa \<le> ba | (IPv4Proto aa, L4Src word1 word2) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (L4Src word1 word2) | (IPv4Proto aa, L4Dst word1 word2) \<Rightarrow> match_sorter (IPv4Proto aa) < match_sorter (L4Dst word1 word2) | (L4Src a1 a2, IngressPort list) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (IngressPort list) | (L4Src a1 a2, EtherSrc word) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (EtherSrc word) | (L4Src a1 a2, EtherDst word) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (EtherDst word) | (L4Src a1 a2, EtherType word) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (EtherType word) | (L4Src a1 a2, VlanId word) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (VlanId word) | (L4Src a1 a2, VlanPriority word) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (VlanPriority word) | (L4Src a1 a2, IPv4Src prefix_match) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (IPv4Src prefix_match) | (L4Src a1 a2, IPv4Dst prefix_match) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (IPv4Dst prefix_match) | (L4Src a1 a2, IPv4Proto word) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (IPv4Proto word) | (L4Src a1 a2, L4Src b1 b2) \<Rightarrow> if a2 = b2 then a1 \<le> b1 else a2 \<le> b2 | (L4Src a1 a2, L4Dst word1b word2b) \<Rightarrow> match_sorter (L4Src a1 a2) < match_sorter (L4Dst word1b word2b) | (L4Dst a1 a2, IngressPort list) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (IngressPort list) | (L4Dst a1 a2, EtherSrc word) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (EtherSrc word) | (L4Dst a1 a2, EtherDst word) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (EtherDst word) | (L4Dst a1 a2, EtherType word) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (EtherType word) | (L4Dst a1 a2, VlanId word) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (VlanId word) | (L4Dst a1 a2, VlanPriority word) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (VlanPriority word) | (L4Dst a1 a2, IPv4Src prefix_match) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (IPv4Src prefix_match) | (L4Dst a1 a2, IPv4Dst prefix_match) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (IPv4Dst prefix_match) | (L4Dst a1 a2, IPv4Proto word) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (IPv4Proto word) | (L4Dst a1 a2, L4Src word1b word2b) \<Rightarrow> match_sorter (L4Dst a1 a2) < match_sorter (L4Src word1b word2b) | (L4Dst a1 a2, L4Dst b1 b2) \<Rightarrow> if a2 = b2 then a1 \<le> b1 else a2 \<le> b2)"