parse_ipv6_address_compressed_def: fixes as :: "16 word option list" shows "parse_ipv6_address_compressed as = (case as of [] \<Rightarrow> None | [None] \<Rightarrow> Some (IPv6AddrCompressed1_0 ()) | None # None # lista \<Rightarrow> None | [None, Some a] \<Rightarrow> Some (IPv6AddrCompressed1_1 () a) | None # Some a # None # list \<Rightarrow> None | [None, Some a, Some b] \<Rightarrow> Some (IPv6AddrCompressed1_2 () a b) | None # Some a # Some b # None # lista \<Rightarrow> None | [None, Some a, Some b, Some c] \<Rightarrow> Some (IPv6AddrCompressed1_3 () a b c) | None # Some a # Some b # Some c # None # list \<Rightarrow> None | [None, Some a, Some b, Some c, Some d] \<Rightarrow> Some (IPv6AddrCompressed1_4 () a b c d) | None # Some a # Some b # Some c # Some d # None # lista \<Rightarrow> None | [None, Some a, Some b, Some c, Some d, Some e] \<Rightarrow> Some (IPv6AddrCompressed1_5 () a b c d e) | None # Some a # Some b # Some c # Some d # Some e # None # list \<Rightarrow> None | [None, Some a, Some b, Some c, Some d, Some e, Some f] \<Rightarrow> Some (IPv6AddrCompressed1_6 () a b c d e f) | None # Some a # Some b # Some c # Some d # Some e # Some f # None # lista \<Rightarrow> None | [None, Some a, Some b, Some c, Some d, Some e, Some f, Some g] \<Rightarrow> Some (IPv6AddrCompressed1_7 () a b c d e f g) | None # Some a # Some b # Some c # Some d # Some e # Some f # Some g # aa # x \<Rightarrow> Map.empty x | [Some a] \<Rightarrow> None | [Some a, None] \<Rightarrow> Some (IPv6AddrCompressed2_1 a ()) | Some a # None # None # list \<Rightarrow> None | [Some a, None, Some b] \<Rightarrow> Some (IPv6AddrCompressed2_2 a () b) | Some a # None # Some b # None # lista \<Rightarrow> None | [Some a, None, Some b, Some c] \<Rightarrow> Some (IPv6AddrCompressed2_3 a () b c) | Some a # None # Some b # Some c # None # list \<Rightarrow> None | [Some a, None, Some b, Some c, Some d] \<Rightarrow> Some (IPv6AddrCompressed2_4 a () b c d) | Some a # None # Some b # Some c # Some d # None # lista \<Rightarrow> None | [Some a, None, Some b, Some c, Some d, Some e] \<Rightarrow> Some (IPv6AddrCompressed2_5 a () b c d e) | Some a # None # Some b # Some c # Some d # Some e # None # list \<Rightarrow> None | [Some a, None, Some b, Some c, Some d, Some e, Some f] \<Rightarrow> Some (IPv6AddrCompressed2_6 a () b c d e f) | Some a # None # Some b # Some c # Some d # Some e # Some f # None # lista \<Rightarrow> None | [Some a, None, Some b, Some c, Some d, Some e, Some f, Some g] \<Rightarrow> Some (IPv6AddrCompressed2_7 a () b c d e f g) | Some a # None # Some b # Some c # Some d # Some e # Some f # Some g # aa # x \<Rightarrow> Map.empty x | [Some a, Some b] \<Rightarrow> None | [Some a, Some b, None] \<Rightarrow> Some (IPv6AddrCompressed3_2 a b ()) | Some a # Some b # None # None # lista \<Rightarrow> None | [Some a, Some b, None, Some c] \<Rightarrow> Some (IPv6AddrCompressed3_3 a b () c) | Some a # Some b # None # Some c # None # list \<Rightarrow> None | [Some a, Some b, None, Some c, Some d] \<Rightarrow> Some (IPv6AddrCompressed3_4 a b () c d) | Some a # Some b # None # Some c # Some d # None # lista \<Rightarrow> None | [Some a, Some b, None, Some c, Some d, Some e] \<Rightarrow> Some (IPv6AddrCompressed3_5 a b () c d e) | Some a # Some b # None # Some c # Some d # Some e # None # list \<Rightarrow> None | [Some a, Some b, None, Some c, Some d, Some e, Some f] \<Rightarrow> Some (IPv6AddrCompressed3_6 a b () c d e f) | Some a # Some b # None # Some c # Some d # Some e # Some f # None # lista \<Rightarrow> None | [Some a, Some b, None, Some c, Some d, Some e, Some f, Some g] \<Rightarrow> Some (IPv6AddrCompressed3_7 a b () c d e f g) | Some a # Some b # None # Some c # Some d # Some e # Some f # Some g # aa # x \<Rightarrow> Map.empty x | [Some a, Some b, Some c] \<Rightarrow> None | [Some a, Some b, Some c, None] \<Rightarrow> Some (IPv6AddrCompressed4_3 a b c ()) | Some a # Some b # Some c # None # None # list \<Rightarrow> None | [Some a, Some b, Some c, None, Some d] \<Rightarrow> Some (IPv6AddrCompressed4_4 a b c () d) | Some a # Some b # Some c # None # Some d # None # lista \<Rightarrow> None | [Some a, Some b, Some c, None, Some d, Some e] \<Rightarrow> Some (IPv6AddrCompressed4_5 a b c () d e) | Some a # Some b # Some c # None # Some d # Some e # None # list \<Rightarrow> None | [Some a, Some b, Some c, None, Some d, Some e, Some f] \<Rightarrow> Some (IPv6AddrCompressed4_6 a b c () d e f) | Some a # Some b # Some c # None # Some d # Some e # Some f # None # lista \<Rightarrow> None | [Some a, Some b, Some c, None, Some d, Some e, Some f, Some g] \<Rightarrow> Some (IPv6AddrCompressed4_7 a b c () d e f g) | Some a # Some b # Some c # None # Some d # Some e # Some f # Some g # aa # x \<Rightarrow> Map.empty x | [Some a, Some b, Some c, Some d] \<Rightarrow> None | [Some a, Some b, Some c, Some d, None] \<Rightarrow> Some (IPv6AddrCompressed5_4 a b c d ()) | Some a # Some b # Some c # Some d # None # None # lista \<Rightarrow> None | [Some a, Some b, Some c, Some d, None, Some e] \<Rightarrow> Some (IPv6AddrCompressed5_5 a b c d () e) | Some a # Some b # Some c # Some d # None # Some e # None # list \<Rightarrow> None | [Some a, Some b, Some c, Some d, None, Some e, Some f] \<Rightarrow> Some (IPv6AddrCompressed5_6 a b c d () e f) | Some a # Some b # Some c # Some d # None # Some e # Some f # None # lista \<Rightarrow> None | [Some a, Some b, Some c, Some d, None, Some e, Some f, Some g] \<Rightarrow> Some (IPv6AddrCompressed5_7 a b c d () e f g) | Some a # Some b # Some c # Some d # None # Some e # Some f # Some g # aa # x \<Rightarrow> Map.empty x | [Some a, Some b, Some c, Some d, Some e] \<Rightarrow> None | [Some a, Some b, Some c, Some d, Some e, None] \<Rightarrow> Some (IPv6AddrCompressed6_5 a b c d e ()) | Some a # Some b # Some c # Some d # Some e # None # None # list \<Rightarrow> None | [Some a, Some b, Some c, Some d, Some e, None, Some f] \<Rightarrow> Some (IPv6AddrCompressed6_6 a b c d e () f) | Some a # Some b # Some c # Some d # Some e # None # Some f # None # lista \<Rightarrow> None | [Some a, Some b, Some c, Some d, Some e, None, Some f, Some g] \<Rightarrow> Some (IPv6AddrCompressed6_7 a b c d e () f g) | Some a # Some b # Some c # Some d # Some e # None # Some f # Some g # aa # x \<Rightarrow> Map.empty x | [Some a, Some b, Some c, Some d, Some e, Some f] \<Rightarrow> None | [Some a, Some b, Some c, Some d, Some e, Some f, None] \<Rightarrow> Some (IPv6AddrCompressed7_6 a b c d e f ()) | Some a # Some b # Some c # Some d # Some e # Some f # None # None # lista \<Rightarrow> None | [Some a, Some b, Some c, Some d, Some e, Some f, None, Some g] \<Rightarrow> Some (IPv6AddrCompressed7_7 a b c d e f () g) | Some a # Some b # Some c # Some d # Some e # Some f # None # Some g # aa # x \<Rightarrow> Map.empty x | [Some a, Some b, Some c, Some d, Some e, Some f, Some g] \<Rightarrow> None | [Some a, Some b, Some c, Some d, Some e, Some f, Some g, None] \<Rightarrow> Some (IPv6AddrCompressed8_7 a b c d e f g ()) | Some a # Some b # Some c # Some d # Some e # Some f # Some g # None # aa # x \<Rightarrow> Map.empty x | Some a # Some b # Some c # Some d # Some e # Some f # Some g # Some x # lista \<Rightarrow> Map.empty x)"