• Top
    • Documentation
    • Books
    • Boolean-reasoning
    • Projects
      • Apt
      • Zfc
      • Acre
      • Milawa
      • Smtlink
      • Abnf
      • Vwsim
      • Isar
      • Pfcs
      • Wp-gen
      • Dimacs-reader
      • Legacy-defrstobj
      • Proof-checker-array
      • Soft
      • C
      • Farray
      • Rp-rewriter
      • Instant-runoff-voting
      • Imp-language
      • Sidekick
      • Leftist-trees
      • Java
      • Taspi
      • Riscv
      • Bitcoin
      • Des
      • Ethereum
      • X86isa
      • Sha-2
      • Yul
      • Zcash
        • Jubjub
          • Jubjub-abst
          • Jubjub-r-pointp
          • Jubjub-pointp
          • Jubjub-d
          • Jubjub-montgomery
          • Maybe-jubjub-pointp
          • Jubjub-point->u
            • Jubjub-q
            • Jubjub-point->v
            • Point-on-jubjub-p
            • Jubjub-rstar-pointp
            • Jubjub-add
            • Jubjub-r-properties
            • Jubjub-point-abscissa-is-not-1
            • Jubjub-mul
            • Jubjub-curve
            • Jubjub-a
            • Jubjub-neg
            • Jubjub-r
            • Jubjub-point-satisfies-curve-equation
            • Jubjub-h
            • Jubjub-mul-of-2
            • *jubjub-l*
          • Verify-zcash-r1cs
          • Lift-zcash-r1cs
          • Pedersen-hash
          • Zcash-gadgets
          • Bit/byte/integer-conversions
          • Constants
          • Blake2-hash
          • Randomness-beacon
        • Proof-checker-itp13
        • Regex
        • ACL2-programming-language
        • Json
        • Jfkr
        • Equational
        • Cryptography
        • Poseidon
        • Where-do-i-place-my-book
        • Axe
        • Aleo
        • Bigmems
        • Builtins
        • Execloader
        • Solidity
        • Paco
        • Concurrent-programs
        • Bls12-377-curves
      • Debugging
      • Std
      • Community
      • Proof-automation
      • Macro-libraries
      • ACL2
      • Interfacing-tools
      • Hardware-verification
      • Software-verification
      • Math
      • Testing-utilities
    • Jubjub

    Jubjub-point->u

    The function \mathcal{U} in [ZPS:5.4.9.4].

    Signature
    (jubjub-point->u point) → u
    Arguments
    point — Guard (jubjub-pointp point).
    Returns
    u — Type (natp u).

    [ZPS] defines this function on any finite point (in fact, on any pair), but it is only used on Jubjub points.

    This is always below the Jubjub field prime.

    Definitions and Theorems

    Function: jubjub-point->u

    (defun jubjub-point->u (point)
      (declare (xargs :guard (jubjub-pointp point)))
      (let ((__function__ 'jubjub-point->u))
        (declare (ignorable __function__))
        (ecurve::point-finite->x point)))

    Theorem: natp-of-jubjub-point->u

    (defthm natp-of-jubjub-point->u
      (b* ((u (jubjub-point->u point)))
        (natp u))
      :rule-classes :type-prescription)

    Theorem: jubjub-point->u-upper-bound

    (defthm jubjub-point->u-upper-bound
      (implies (jubjub-pointp point)
               (b* ((acl2::?u (jubjub-point->u point)))
                 (< u (jubjub-q))))
      :rule-classes :linear)

    Theorem: fep-of-jubjub-point->u

    (defthm fep-of-jubjub-point->u
      (implies (jubjub-pointp point)
               (b* ((acl2::?u (jubjub-point->u point)))
                 (fep u (jubjub-q)))))