Theorems about get-rs1 applied to the encoding of different instructions.
Theorem:
(defthm get-rs1-of-encode-of-instr-op-imm (equal (get-rs1 (encode (instr-op-imm funct rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-op-imms32 (equal (get-rs1 (encode (instr-op-imms32 funct rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-op-imms64 (equal (get-rs1 (encode (instr-op-imms64 funct rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-op-imm-32 (equal (get-rs1 (encode (instr-op-imm-32 funct rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-op-imms-32 (equal (get-rs1 (encode (instr-op-imms-32 funct rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-op (equal (get-rs1 (encode (instr-op funct rd rs1 rs2) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-op-32 (equal (get-rs1 (encode (instr-op-32 funct rd rs1 rs2) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-jalr (equal (get-rs1 (encode (instr-jalr rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-branch (equal (get-rs1 (encode (instr-branch funct rs1 rs2 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-load (equal (get-rs1 (encode (instr-load funct rd rs1 imm) feat)) (ubyte5-fix rs1)))
Theorem:
(defthm get-rs1-of-encode-of-instr-store (equal (get-rs1 (encode (instr-store funct rs1 rs2 imm) feat)) (ubyte5-fix rs1)))