Skip to content

Commit 4cce883

Browse files
committed
Renamed exported types
1 parent 8ca8cb1 commit 4cce883

File tree

3 files changed

+44
-46
lines changed

3 files changed

+44
-46
lines changed

formal-spec/Leios/Foreign/Export.agda

+11-11
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ open import Tactic.Derive.Convertible
1010
open import Tactic.Derive.HsType
1111

1212
open import Leios.Prelude
13-
open import Leios.Trace
13+
open import Leios.Trace renaming (EndorserBlock to EndorserBlockAgda; IBHeader to IBHeaderAgda)
1414
open import Leios.Foreign.BaseTypes
1515
open import Leios.Foreign.HSTypes
1616

@@ -20,20 +20,20 @@ instance
2020
HsTy-SlotUpkeep = autoHsType SlotUpkeep ⊣ onConstructors (S.concat ∘ (S.wordsByᵇ ('-' Char.≈ᵇ_)))
2121
Conv-SlotUpkeep = autoConvert SlotUpkeep
2222

23-
record IBHeaderHs : Type where
23+
record IBHeader : Type where
2424
field slotNumber : Int
2525
producerID : Int
2626

2727
{-# FOREIGN GHC
28-
data IBHeaderHs = IBHeaderHs Integer Integer
28+
data IBHeader = IBHeader Integer Integer
2929
deriving (Show, Eq, Generic)
3030
#-}
3131

32-
{-# COMPILE GHC IBHeaderHs = data IBHeaderHs (IBHeaderHs) #-}
32+
{-# COMPILE GHC IBHeader = data IBHeader (IBHeader) #-}
3333

3434
instance
35-
HsTy-IBHeader = MkHsType IBHeader IBHeaderHs
36-
Conv-IBHeader : Convertible IBHeader IBHeaderHs
35+
HsTy-IBHeader = MkHsType IBHeaderAgda IBHeader
36+
Conv-IBHeader : Convertible IBHeaderAgda IBHeader
3737
Conv-IBHeader = record
3838
{ to = λ (record { slotNumber = sl ; producerID = pid }) record { slotNumber = + sl ; producerID = + toℕ pid }
3939
; from = λ (record { slotNumber = sl ; producerID = pid })
@@ -64,23 +64,23 @@ instance
6464
Conv-ℕ : HsConvertible ℕ
6565
Conv-ℕ = Convertible-Refl
6666

67-
record EndorserBlockHs : Type where
67+
record EndorserBlock : Type where
6868
field slotNumber : Int
6969
producerID : Int
7070
ibRefs : List Int
7171

7272
{-# FOREIGN GHC
73-
data EndorserBlockHs = EndorserBlockHs Integer Integer [Integer]
73+
data EndorserBlock = EndorserBlock Integer Integer [Integer]
7474
deriving (Show, Eq, Generic)
7575
#-}
7676

77-
{-# COMPILE GHC EndorserBlockHs = data EndorserBlockHs (EndorserBlockHs) #-}
77+
{-# COMPILE GHC EndorserBlock = data EndorserBlock (EndorserBlock) #-}
7878

7979
instance
8080

81-
HsTy-EndorserBlock = MkHsType EndorserBlock EndorserBlockHs
81+
HsTy-EndorserBlock = MkHsType EndorserBlockAgda EndorserBlock
8282

83-
Conv-EndorserBlock : Convertible EndorserBlock EndorserBlockHs
83+
Conv-EndorserBlock : Convertible EndorserBlockAgda EndorserBlock
8484
Conv-EndorserBlock =
8585
record
8686
{ to = λ (record { slotNumber = sl ; producerID = pid }) record { slotNumber = + sl ; producerID = + toℕ pid ; ibRefs = [] }

leios-conformance/src/Leios/Conformance/Model.hs

+30-32
Original file line numberDiff line numberDiff line change
@@ -23,44 +23,42 @@ data EnvAction
2323
| NewVote Vote
2424
deriving (Eq, Show)
2525

26-
instance FromJSON InputBlock where
27-
parseJSON = undefined
26+
instance FromJSON IBHeader
27+
instance FromJSON IBBody
28+
instance FromJSON InputBlock
2829

29-
instance ToJSON InputBlock where
30-
toJSON = undefined
30+
instance ToJSON IBHeader
31+
instance ToJSON IBBody
32+
instance ToJSON InputBlock
3133

3234
instance Pretty InputBlock where
33-
pPrint (InputBlock _ _) = "InputBlock"
34-
35-
-- TODO: use EndorserBlock extracted from Agda
36-
data EndorserBlock = EndorserBlock
37-
deriving (Show, Eq, Generic)
35+
pPrint (InputBlock {}) = "InputBlock"
3836

3937
instance FromJSON EndorserBlock
4038
instance ToJSON EndorserBlock
4139
instance Pretty EndorserBlock where
42-
pPrint EndorserBlock = "EndorserBlock"
43-
44-
-- TODO: use Vote extracted from Agda
45-
data Vote = Vote
46-
deriving (Show, Eq, Generic)
47-
48-
instance FromJSON Vote
49-
instance ToJSON Vote
50-
instance Pretty Vote where
51-
pPrint Vote = "Vote"
52-
53-
-- TODO: use LeiosState extracted from Agda
54-
data NodeModel = NodeModel
55-
{ currentSlot :: Integer
56-
, ibs :: [InputBlock]
57-
, ebs :: [EndorserBlock]
58-
, votes :: [Vote]
59-
}
60-
deriving Show
40+
pPrint (EndorserBlock {}) = "EndorserBlock"
41+
42+
type Vote = () -- TODO: use Vote extracted from Agda
43+
type NodeModel = LeiosState
6144

6245
initialModelState :: NodeModel
63-
initialModelState = NodeModel 0 [] [] []
46+
initialModelState = LeiosState
47+
{ v = ()
48+
, sD = MkHSMap []
49+
, fFDState = ()
50+
, ledger = []
51+
, toPropose = []
52+
, iBs = []
53+
, eBs = []
54+
, vs = []
55+
, slot = 0
56+
, iBHeaders = []
57+
, iBBodies = []
58+
, upkeep = MkHSSet []
59+
, baseState = ()
60+
, votingState = ()
61+
}
6462

6563
--TODO
6664
makeIB :: NodeModel -> Maybe InputBlock
@@ -75,13 +73,13 @@ makeVote :: NodeModel -> Maybe Vote
7573
makeVote _ = Nothing
7674

7775
addIB :: InputBlock -> NodeModel -> NodeModel
78-
addIB ib nm@NodeModel{..} = nm { ibs = ib : ibs }
76+
addIB ib nm@LeiosState{..} = nm { iBs = ib : iBs }
7977

8078
addEB :: EndorserBlock -> NodeModel -> NodeModel
81-
addEB eb nm@NodeModel{..} = nm { ebs = eb : ebs }
79+
addEB eb nm@LeiosState{..} = nm { eBs = eb : eBs }
8280

8381
addVote :: Vote -> NodeModel -> NodeModel
84-
addVote v nm@NodeModel{..} = nm { votes = v : votes }
82+
addVote x nm@LeiosState{..} = nm { vs = [x] : vs }
8583

8684
-- TODO: Leios executable specification
8785
transition :: NodeModel -> EnvAction -> Maybe (([InputBlock], [EndorserBlock], [Vote]), NodeModel)

leios-conformance/src/Leios/Conformance/Test/External.hs

+3-3
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ type Runtime = StateT RunState IO
103103

104104
instance Realized IO ([InputBlock], [EndorserBlock], [Vote]) ~ ([InputBlock], [EndorserBlock], [Vote]) => RunModel NetworkModel Runtime where
105105

106-
perform net@NetworkModel{nodeModel = NodeModel{..}} (Step a) _ = case a of
106+
perform net@NetworkModel{nodeModel = LeiosState{..}} (Step a) _ = case a of
107107
Tick -> do
108108
rs@RunState{..} <- get
109109
modify $ \rs' -> rs' {unfetchedIBs = mempty, unfetchedEBs = mempty, unfetchedVotes = mempty}
@@ -133,8 +133,8 @@ instance Realized IO ([InputBlock], [EndorserBlock], [Vote]) ~ ([InputBlock], [E
133133
let (expectedIBs, expectedEBs, expectedVotes) = maybe (mempty, mempty, mempty) fst $ transition s a
134134
let ok = (ibs, ebs) == (expectedIBs, expectedEBs)
135135
monitorPost . counterexample . show $ " action $" <+> pPrint a
136-
when (a == Tick && currentSlot s == currentSlot s' + 1) $
137-
monitorPost . counterexample $ " -- new slot: " ++ show (currentSlot s')
136+
when (a == Tick && slot s == slot s' + 1) $
137+
monitorPost . counterexample $ " -- new slot: " ++ show (slot s')
138138
unless (null ibs) $
139139
monitorPost . counterexample . show $ " -- got InputBlocks:" <+> pPrint ibs
140140
when (ibs /= expectedIBs) $

0 commit comments

Comments
 (0)