packages feed

HaRe-0.6: tools/property/tests/Test1Proofs.alfa

--#include "alfa/Test1.alfa"

open Module_Prelude  use  List,  map,  id,  Bool,  (..),  not,  Int

open Module_Test1
 use  f,  IsId,  IdIsId,  g,  Id_g,  MapIdIsId,  NotNotIsId,
      Reflexive,  EqReflBool,  AllBools,  h,  tr,  fa,  T,  F,
      ExcludedMiddle

open Identity  use  Identical,  refl,  cong

proofIdIsId ::IdIsId
  =  \(t5::Star) ->
     \(x::t5) ->
    let ndgoal ::Identical t5 (id t5 x) x
          = refl t5 (id t5 x)
    in  ndgoal

proofMapIdIsId ::MapIdIsId
  =  \(t11::Star) ->
     \(x::Module_Prelude.List t11) ->
    let lemma (xs::List t11) ::
          Identical (Module_Prelude.List t11) (map t11 t11 (id t11) xs) xs
          = case xs of {
              (Nil) -> Ref@_;
              (Cons x' xs') ->
                cong
                (List t11)
                (Module_Prelude.List t11)
                (map t11 t11 (id t11) xs')
                xs'
                ( \(h::List t11) -> Cons@_ x' h)
                (lemma xs');}
    in  lemma x

proofId_g ::Id_g
  =  \(t16::Star) -> refl t16

proofNotNotIsId ::NotNotIsId
  =  \(x::Module_Prelude.Bool) ->
    case x of {
      (False) -> Ref@_;
      (True) -> Ref@_;}

proofEqReflBool ::EqReflBool
  =  \(x::Module_Prelude.Bool) ->
    case x of {
      (False) -> Ref@_;
      (True) -> Ref@_;}

proofExcludedMiddle ::ExcludedMiddle
  =  \(b::Module_Prelude.Bool) ->
    case b of {
      (False) -> orI1@_ Ref@_;
      (True) -> orI2@_ Ref@_;}
{-# Alfa unfoldgoals off
brief on
hidetypeannots on
wide

nd
hiding on
 #-}