Step * of Lemma permutation-invariant

[T:Type]. ∀[P:(T List) ⟶ ℙ].
  ((∀as:T List. ∀a:T.  (P[[a as]]  P[as [a]]))
   (∀as:T List. ∀a1,a2:T.  (P[[a1; [a2 as]]]  P[[a2; [a1 as]]]))
   (∀as,bs:T List.  (permutation(T;as;bs)  (P[as] ⇐⇒ P[bs]))))
BY
(RepeatFor ((D THENA Auto))
   THEN InstLemma `permutation-invariant2` [⌜T⌝;⌜λ2as bs.P[as]  P[bs]⌝]⋅
   THEN Auto
   THEN Try ((D THEN Auto))
   THEN FLemma `permutation_inversion` [-2]
   THEN Auto) }


Latex:


Latex:
\mforall{}[T:Type].  \mforall{}[P:(T  List)  {}\mrightarrow{}  \mBbbP{}].
    ((\mforall{}as:T  List.  \mforall{}a:T.    (P[[a  /  as]]  {}\mRightarrow{}  P[as  @  [a]]))
    {}\mRightarrow{}  (\mforall{}as:T  List.  \mforall{}a1,a2:T.    (P[[a1;  [a2  /  as]]]  {}\mRightarrow{}  P[[a2;  [a1  /  as]]]))
    {}\mRightarrow{}  (\mforall{}as,bs:T  List.    (permutation(T;as;bs)  {}\mRightarrow{}  (P[as]  \mLeftarrow{}{}\mRightarrow{}  P[bs]))))


By


Latex:
(RepeatFor  4  ((D  0  THENA  Auto))
  THEN  InstLemma  `permutation-invariant2`  [\mkleeneopen{}T\mkleeneclose{};\mkleeneopen{}\mlambda{}\msubtwo{}as  bs.P[as]  {}\mRightarrow{}  P[bs]\mkleeneclose{}]\mcdot{}
  THEN  Auto
  THEN  Try  ((D  0  THEN  Auto))
  THEN  FLemma  `permutation\_inversion`  [-2]
  THEN  Auto)




Home Index