idris

    3

    1答えて

    Idrisでは、述語に基づいて要素を削除したい場合、filter,dropWhile、takeWhileがあります。ただし、これらの関数はすべて、従属ペア(n : Nat ** Vect n elem)を返します。 Vectタイプとして返​​される関数はありますか?私は考えることができるものについては : 変換後の長さのベクトルを示すタイプを実装Vect に依存ペアに変換Hereのように、(私はど

    3

    1答えて

    import Data.Vect import Data.Vect.Quantifiers sameKeys : Vect n (lbl, Type) -> Vect n (lbl, Type) -> Type sameKeys xs ys = All (uncurry (=)) (zip (map fst xs) (map fst ys)) g : {xs,ys : Vect n (

    3

    1答えて

    このプログラムを考えてみましょ遅延評価の問題: module test import Effects import Effect.StdIO (>>==) : Maybe a -> Lazy (a -> Maybe b) -> Maybe b (>>==) Nothing (Delay map) = Nothing (>>==) (Just x) (Delay map) = map

    2

    2答えて

    2つの自然な引数をとり、それらの等価性の証明の多分を返す関数を書いてみたいと思います。 私は equal : (a: Nat) -> (b: Nat) -> Maybe ((a == b) = True) equal a b = case (a == b) of True => Just Refl False => Nothing にしようとしているが、私はこれを行うには

    2

    1答えて

    これは失敗します。 > the ({A : Type} -> A -> {B : Type} -> B -> (A, B)) MkPair (input):1:5:When checking argument value to function Prelude.Basics.the: Type mismatch between A -> B1 -> (A, B1) (

    1

    1答えて

    で証明を適用する::私はことを以前に証明事実を使用しようとしていますこれを証明しようとして reverseProof' : (inputBlock : Block iType iSize iInputs) -> (ind : Fin rSize) -> (rInputs : Vect rSize Ty) -> (receiveBlock : Block r

    4

    1答えて

    上の証拠は、次の関数、私は次のエラーを取得するコンパイルしようとすると tryMove : (diskNumber : Nat) -> (from: Peg) -> (to: Peg)-> {default Oh prf: So (from /= to)} -> Disposition diskNumber -> Maybe (Disposition diskNumber) tryMove Z

    0

    1答えて

    基本的には、再帰算術でn - mまたはm - nのいずれかがゼロに等しいことを証明したいと思います。これを達成するために、私は成功なしでrewrite ... in ...パターンを使用しようとしています。 以下は、基本コードである:最初の二つの穴 - + Main.hoyo1 [P] `-- m : Natural --------------------------------