We present a formal executable specification of two crucial JavaCard platform components, namely the Java Card Virtual Machine
(JCVM) and the ByteCode Verifier (BCV). Moreover, we relate both components by giving a proof of correctness of the ByteCode
Verifier. Both formalisations and proofs have been machined-checked using the proof assistant Coq.