@@ -45,7 +45,7 @@ def linearCombination : TestSeq := Id.run do
4545 witnessModule := newWitnessModule
4646 for j in [0 : 1 <<< i ] do
4747 let u128 := UInt128.ofNatWrap (j * j + 17 )
48- witnessModule := witnessModule.pushUInt128To u128 entryId
48+ witnessModule := witnessModule.pushUInt128sTo #[ u128] entryId
4949 match i with
5050 | 0 => witnessModule := witnessModule.bindOracleTo oracleId entryId .b1
5151 | 1 => witnessModule := witnessModule.bindOracleTo oracleId entryId .b2
@@ -66,7 +66,7 @@ def packed : TestSeq :=
6666 let circuitModule := circuitModule.freezeOracles
6767 let witnessModule := circuitModule.initWitnessModule
6868 let (entryId, witnessModule) := witnessModule.addEntryWithCapacity 7
69- let witnessModule := witnessModule.pushUInt128To 2347928368726 entryId
69+ let witnessModule := witnessModule.pushUInt128sTo #[ 2347928368726 ] entryId
7070 let witnessModule := witnessModule.bindOracleTo x entryId .b1
7171 populateAndValidate circuitModule witnessModule 128 "Archon packed works"
7272
@@ -77,10 +77,40 @@ def shifted : TestSeq :=
7777 let circuitModule := circuitModule.freezeOracles
7878 let witnessModule := circuitModule.initWitnessModule
7979 let (entryId, witnessModule) := witnessModule.addEntryWithCapacity 7
80- let witnessModule := witnessModule.pushUInt128To 2347928368726 entryId
80+ let witnessModule := witnessModule.pushUInt128sTo #[ 2347928368726 ] entryId
8181 let witnessModule := witnessModule.bindOracleTo x entryId .b1
8282 populateAndValidate circuitModule witnessModule 128 "Archon shifted works"
8383
84+ def pushData : TestSeq :=
85+ let circuitModule := CircuitModule.new 0
86+ let (u8s, circuitModule) := circuitModule.addCommitted "u8s" .b1
87+ let (u16s, circuitModule) := circuitModule.addCommitted "u16s" .b1
88+ let (u32s, circuitModule) := circuitModule.addCommitted "u32s" .b1
89+ let (u64s, circuitModule) := circuitModule.addCommitted "u64s" .b1
90+ let (u128s, circuitModule) := circuitModule.addCommitted "u128s" .b1
91+ let circuitModule := circuitModule.assertZero "u8s xor u16s" #[] $ .add (.oracle u8s) (.oracle u16s)
92+ let circuitModule := circuitModule.assertZero "u16s xor u32s" #[] $ .add (.oracle u16s) (.oracle u32s)
93+ let circuitModule := circuitModule.assertZero "u32s xor u64s" #[] $ .add (.oracle u32s) (.oracle u64s)
94+ let circuitModule := circuitModule.assertZero "u64s xor u128s" #[] $ .add (.oracle u64s) (.oracle u128s)
95+ let circuitModule := circuitModule.freezeOracles
96+ let witnessModule := circuitModule.initWitnessModule
97+ let (u8sEntry, witnessModule) := witnessModule.addEntryWithCapacity 7
98+ let (u16sEntry, witnessModule) := witnessModule.addEntryWithCapacity 7
99+ let (u32sEntry, witnessModule) := witnessModule.addEntryWithCapacity 7
100+ let (u64sEntry, witnessModule) := witnessModule.addEntryWithCapacity 7
101+ let (u128sEntry, witnessModule) := witnessModule.addEntryWithCapacity 7
102+ let witnessModule := witnessModule.pushUInt8sTo ⟨(List.replicate 16 0 )⟩ u8sEntry
103+ let witnessModule := witnessModule.pushUInt16sTo ⟨(List.replicate 8 0 )⟩ u16sEntry
104+ let witnessModule := witnessModule.pushUInt32sTo #[0 , 0 , 0 , 0 ] u32sEntry
105+ let witnessModule := witnessModule.pushUInt64sTo #[0 , 0 ] u64sEntry
106+ let witnessModule := witnessModule.pushUInt128sTo #[0 ] u128sEntry
107+ let witnessModule := witnessModule.bindOracleTo u8s u8sEntry .b1
108+ let witnessModule := witnessModule.bindOracleTo u16s u16sEntry .b1
109+ let witnessModule := witnessModule.bindOracleTo u32s u32sEntry .b1
110+ let witnessModule := witnessModule.bindOracleTo u64s u64sEntry .b1
111+ let witnessModule := witnessModule.bindOracleTo u128s u128sEntry .b1
112+ populateAndValidate circuitModule witnessModule 128 "Archon witness data pushes work"
113+
84114def proveAndVerify : TestSeq :=
85115 let circuitModule := CircuitModule.new 0
86116 let (x, circuitModule) := circuitModule.addCommitted "x" .b1
@@ -89,7 +119,7 @@ def proveAndVerify : TestSeq :=
89119 let circuitModule := circuitModule.freezeOracles
90120 let witnessModule := circuitModule.initWitnessModule
91121 let (entryId, witnessModule) := witnessModule.addEntryWithCapacity 7
92- let witnessModule := witnessModule.pushUInt128To (.ofNatCore $ UInt128.size - 1 ) entryId
122+ let witnessModule := witnessModule.pushUInt128sTo #[ (.ofNatCore $ UInt128.size - 1 )] entryId
93123 let witnessModule := witnessModule.bindOracleTo x entryId .b1
94124 let witnessModule := witnessModule.bindOracleTo y entryId .b1
95125 let height := 128
@@ -115,6 +145,7 @@ def Tests.Archon.suite := [
115145 linearCombination,
116146 packed,
117147 shifted,
148+ pushData,
118149 proveAndVerify,
119150 versionCircuitModules,
120151 ]
0 commit comments