{-# LANGUAGE UndecidableInstances #-}

module ZkFold.Base.Protocol.Plonkup.Verifier.Commitments where

import           Prelude                                 hiding (Num (..), drop, length, sum, take, (!!), (/), (^))

import           ZkFold.Base.Algebra.EllipticCurve.Class (EllipticCurve (..), Point)

data PlonkupCircuitCommitments c = PlonkupCircuitCommitments {
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQl :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQr :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQo :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQm :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQc :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQk :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmS1 :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmS2 :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmS3 :: Point c,
        forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmT1 :: Point c
    }
instance (Show (BaseField c), EllipticCurve c) => Show (PlonkupCircuitCommitments c) where
    show :: PlonkupCircuitCommitments c -> String
show PlonkupCircuitCommitments {Point c
cmQl :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQr :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQo :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQm :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQc :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQk :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmS1 :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmS2 :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmS3 :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmT1 :: forall {k} (c :: k). PlonkupCircuitCommitments c -> Point c
cmQl :: Point c
cmQr :: Point c
cmQo :: Point c
cmQm :: Point c
cmQc :: Point c
cmQk :: Point c
cmS1 :: Point c
cmS2 :: Point c
cmS3 :: Point c
cmT1 :: Point c
..} =
        String
"Plonkup Circuit Commitments: "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmQl String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmQr String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmQo String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmQm String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmQc String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmQk String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmS1 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmS2 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmS3 String -> ShowS
forall a. [a] -> [a] -> [a]
++ String
" "
        String -> ShowS
forall a. [a] -> [a] -> [a]
++ Point c -> String
forall a. Show a => a -> String
show Point c
cmT1