Thanks to visit codestin.com
Credit goes to github.com

Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions AVM/Class/Translation/Tasks.lean
Original file line number Diff line number Diff line change
Expand Up @@ -80,7 +80,8 @@ private partial def Body.tasks'
Body.tasks' (task.adjust vals) eco next cont
| .multiMethod multiId selvesIds args signatures next =>
Tasks.fetchSelves selvesIds fun selves =>
let task := multiId.task' adjust eco (fun x => adjust (selves x)) args signatures
let method := eco.multiMethods multiId
let task := method.task' adjust eco (fun x => adjust (selves x)) args signatures
Tasks.task task.task fun vals =>
Body.tasks' (task.adjust vals) eco next cont
| .upgrade classId selfId objData next =>
Expand Down Expand Up @@ -235,16 +236,16 @@ private partial def Class.Upgrade.task'
Class.Upgrade.message classId self.uid
Body.task' adjust eco (.return PUnit.unit) mkReturn mkActionData mkMessage

partial def Ecosystem.Label.MultiMethodId.task'
partial def Ecosystem.MultiMethod.task'
(adjust : AdjustFun)
{lab : Ecosystem.Label}
(eco : Ecosystem lab)
{multiId : lab.MultiMethodId}
(method : Ecosystem.MultiMethod multiId)
(selves : multiId.Selves)
(args : multiId.Args.type)
(signatures : multiId.Signatures args)
: Task' :=
let method := eco.multiMethods multiId
let body := method.body selves args

let mkResult (res : MultiMethodResult multiId) (adjust : AdjustFun) : Tasks (TasksResult .empty (MultiTasksResult multiId)) :=
Expand Down Expand Up @@ -302,7 +303,7 @@ partial def Ecosystem.Label.MultiMethodId.task'
ensureUnique := rands.reassembledNewUidNonces.toList }

let mkMessage (vals : body.params.Product) (tasksRes : MultiTasksResult multiId) : SomeMessage :=
(eco.multiMethods multiId).message selves args signatures vals tasksRes.res.data tasksRes.rands⟩
method.message selves args signatures vals tasksRes.res.data tasksRes.rands⟩

Body.task' adjust eco body mkResult mkActionData mkMessage

Expand Down
8 changes: 4 additions & 4 deletions AVM/Ecosystem/Member.lean
Original file line number Diff line number Diff line change
Expand Up @@ -62,11 +62,11 @@ instance Assembled.instInhabited
withOldUid := fun _ _ => .none }

structure MultiMethodResult {lab : Ecosystem.Label} (multiId : lab.MultiMethodId) : Type 1 where
/-- For each object argument we specify its `DeconstructionKind`. -/
/-- For each object argument (self) we specify its `DeconstructionKind`. -/
argDeconstruction : multiId.ObjectArgNames → DeconstructionKind
/-- List of assembled objects. Assembled objects will be created.
It is the responsibility of the user to ensure that
assembled objects balance with the object arguments that are disassembled -/
/-- List of assembled objects. Assembled objects will be created. It is the
responsibility of the user to ensure that assembled objects balance with the
object arguments (selves) that are disassembled -/
assembled : Assembled argDeconstruction
/-- List of constructed objects. Constructed objects will be balanced with automatically generated ephemeral resources -/
constructed : List ObjectValue := []
Expand Down
3 changes: 3 additions & 0 deletions Anoma/Program.lean
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,9 @@ inductive Program.Error where
| typeError (msg : String)
| userError

/-- Represents an Anoma program, as per
https://forum.anoma.net/t/reifying-the-local-domain-solver-and-controller-in-the-avm
-/
inductive Program where
| skip
| raise (err : Program.Error)
Expand Down
Binary file removed Goose-summary.png
Binary file not shown.
Loading