induct: fixes P :: "action \<Rightarrow> 'a common_primitive match_expr \<Rightarrow> bool"   and a0 :: "action"   and a1 :: "'a common_primitive match_expr" assumes "\<And>uu_. P uu_ MatchAny"   and "\<And>uv_. P Accept (Match (Extra uv_))"   and "\<And>uw_. P Reject (Match (Extra uw_))"   and "\<And>ux_. P Drop (Match (Extra ux_))"   and "\<And>v. P Drop (Match (Src v))"   and "\<And>v. P Drop (Match (Dst v))"   and "\<And>v. P Drop (Match (IIface v))"   and "\<And>v. P Drop (Match (OIface v))"   and "\<And>v. P Drop (Match (Prot v))"   and "\<And>v. P Drop (Match (Src_Ports v))"   and "\<And>v. P Drop (Match (Dst_Ports v))"   and "\<And>v. P Drop (Match (MultiportPorts v))"   and "\<And>v. P Drop (Match (L4_Flags v))"   and "\<And>v. P Drop (Match (CT_State v))"   and "\<And>m. P Log (Match m)"   and "\<And>v. P Reject (Match (Src v))"   and "\<And>v. P Reject (Match (Dst v))"   and "\<And>v. P Reject (Match (IIface v))"   and "\<And>v. P Reject (Match (OIface v))"   and "\<And>v. P Reject (Match (Prot v))"   and "\<And>v. P Reject (Match (Src_Ports v))"   and "\<And>v. P Reject (Match (Dst_Ports v))"   and "\<And>v. P Reject (Match (MultiportPorts v))"   and "\<And>v. P Reject (Match (L4_Flags v))"   and "\<And>v. P Reject (Match (CT_State v))"   and "\<And>v m. P (Call v) (Match m)"   and "\<And>m. P Return (Match m)"   and "\<And>v m. P (Goto v) (Match m)"   and "\<And>m. P Empty (Match m)"   and "\<And>m. P Unknown (Match m)"   and "\<And>uy_ v. P uy_ (Match (Src v))"   and "\<And>uy_ v. P uy_ (Match (Dst v))"   and "\<And>uy_ v. P uy_ (Match (IIface v))"   and "\<And>uy_ v. P uy_ (Match (OIface v))"   and "\<And>uy_ v. P uy_ (Match (Prot v))"   and "\<And>uy_ v. P uy_ (Match (Src_Ports v))"   and "\<And>uy_ v. P uy_ (Match (Dst_Ports v))"   and "\<And>uy_ v. P uy_ (Match (MultiportPorts v))"   and "\<And>uy_ v. P uy_ (Match (L4_Flags v))"   and "\<And>uy_ v. P uy_ (Match (CT_State v))"   and "\<And>uz_. P Accept (MatchNot (Match (Extra uz_)))"   and "\<And>va_. P Drop (MatchNot (Match (Extra va_)))"   and "\<And>vb_. P Reject (MatchNot (Match (Extra vb_)))"   and "\<And>a m. P a m \<Longrightarrow> P a (MatchNot (MatchNot m))"   and "\<And>a m1 m2. \<lbrakk>P a (MatchNot m1); \<And>x. x = upper_closure_matchexpr a (MatchNot m1) \<Longrightarrow> P a (MatchNot m2)\<rbrakk> \<Longrightarrow> P a (MatchNot (MatchAnd m1 m2))"   and "\<And>va. P Drop (MatchNot (Match (Src va)))"   and "\<And>va. P Drop (MatchNot (Match (Dst va)))"   and "\<And>va. P Drop (MatchNot (Match (IIface va)))"   and "\<And>va. P Drop (MatchNot (Match (OIface va)))"   and "\<And>va. P Drop (MatchNot (Match (Prot va)))"   and "\<And>va. P Drop (MatchNot (Match (Src_Ports va)))"   and "\<And>va. P Drop (MatchNot (Match (Dst_Ports va)))"   and "\<And>va. P Drop (MatchNot (Match (MultiportPorts va)))"   and "\<And>va. P Drop (MatchNot (Match (L4_Flags va)))"   and "\<And>va. P Drop (MatchNot (Match (CT_State va)))"   and "P Drop (MatchNot MatchAny)"   and "\<And>v. P Log (MatchNot (Match v))"   and "P Log (MatchNot MatchAny)"   and "\<And>va. P Reject (MatchNot (Match (Src va)))"   and "\<And>va. P Reject (MatchNot (Match (Dst va)))"   and "\<And>va. P Reject (MatchNot (Match (IIface va)))"   and "\<And>va. P Reject (MatchNot (Match (OIface va)))"   and "\<And>va. P Reject (MatchNot (Match (Prot va)))"   and "\<And>va. P Reject (MatchNot (Match (Src_Ports va)))"   and "\<And>va. P Reject (MatchNot (Match (Dst_Ports va)))"   and "\<And>va. P Reject (MatchNot (Match (MultiportPorts va)))"   and "\<And>va. P Reject (MatchNot (Match (L4_Flags va)))"   and "\<And>va. P Reject (MatchNot (Match (CT_State va)))"   and "P Reject (MatchNot MatchAny)"   and "\<And>v va. P (Call v) (MatchNot (Match va))"   and "\<And>v. P (Call v) (MatchNot MatchAny)"   and "\<And>v. P Return (MatchNot (Match v))"   and "P Return (MatchNot MatchAny)"   and "\<And>v va. P (Goto v) (MatchNot (Match va))"   and "\<And>v. P (Goto v) (MatchNot MatchAny)"   and "\<And>v. P Empty (MatchNot (Match v))"   and "P Empty (MatchNot MatchAny)"   and "\<And>v. P Unknown (MatchNot (Match v))"   and "P Unknown (MatchNot MatchAny)"   and "\<And>vc_ va. P vc_ (MatchNot (Match (Src va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (Dst va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (IIface va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (OIface va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (Prot va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (Src_Ports va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (Dst_Ports va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (MultiportPorts va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (L4_Flags va)))"   and "\<And>vc_ va. P vc_ (MatchNot (Match (CT_State va)))"   and "\<And>vc_. P vc_ (MatchNot MatchAny)"   and "\<And>a m1 m2. \<lbrakk>P a m1; P a m2\<rbrakk> \<Longrightarrow> P a (MatchAnd m1 m2)" shows "P a0 a1"