Interesting properties to prove
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 5/5
- Tiempo estimado
- Más de una semana
- Aptitud para principiantes
- 25/100
- Tipo de issue
- Nueva funcionalidad
- Claridad
- Necesita aclaración
- Estado de actividad
- Estancado
- Stack tecnológico
- wasm
- Área
- compilers
Línea de trabajo
El issue no nombra archivos, tests ni puntos de entrada. Empieza localizando la semántica de memoria de KWasm y cualquier modelo de llamadas al host, después formaliza las invariantes keys-in-range y values-in-range y demuéstralas por inducción. Terminado significa que se han establecido las propiedades de soundness indicadas, incluido el efecto de las llamadas al host.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
-
(local.get I:Int) (local.set I:Int)is ust identity (no effect) -
(ITYPE.store (i32.const ADDR) (ITYPE.load (i32.const ADDR)))is just identity (no effect) - A loop invariant: 1+2+...+n = n(n+1)/2
- Soundness of KWasm: Memory byte arrays maintain their invariants
- Keys-in-range property: All keys
Kin the map maintain0 <= K < SIZE * 65536- No instruction can store to out of bounds (
< 0or>= SIZE * 65536) - No instruction can load from out of bounds
- Putting them together with an induction proof: an empty memory has keys-in-range, and no statement can cause it to be violated, so it always holds. May require modelling host calls.
- No instruction can store to out of bounds (
- Values-in-range property: No instruction can modify the memory so that the value in a slot is <1 or > 255
- Induction proof: an empty memory is valid, and no statement can cause a memory to become invalid, so the semantics never violate the invariant.
- Keys-in-range property: All keys
Feel free to add more.
- Lenguaje dominante
- WebAssembly
- Estrellas
- 106
- Forks
- 24
- Métricas de merge de PR
- Sin PR fusionados en 30 d
Preparar el entorno
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de runtimeverification/wasm-semantics
-
enhancement
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
-
bug
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 48/100
-
Dificultad 3/5 1-2 días Aptitud para principiantes 55/100
-
Improve tokenisation supportAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de runtimeverification/wasm-semantics
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
objectionary/jeo-maven-plugin#1827 ·
Los mantenedores suelen responder en 4 días
-
backend:DirectX
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
llvm/llvm-project#227530 ·
Los mantenedores suelen responder en 1 día
-
`enzymexla.linalg.lu` lowering fails for a tall matrix: the permutation is built with the pivot typeAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
EnzymeAD/Enzyme-JAX#3286 ·
Los mantenedores suelen responder en 1 día
-
bot-triaged oncall: cpu inductor
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pytorch/pytorch#199058 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
WebAssembly/component-model#733 · 1 comentario ·
Los mantenedores suelen responder en 2 días