Our site saves small pieces of text information (cookies) on your device in order to deliver better content and for statistical purposes. You can disable the usage of cookies by changing the settings of your browser. By browsing our website without changing the browser settings you grant us permission to store that information on your device.

Fun modulo 5

Could you believe it? Stefan was playing around with his favorite numbers, he wanted to practice taking the fifth power of them, when suddenly he realized, that the least significant digit of the result was the same as the original number's. Can you show him why?

That is, prove: n mod 10 = (n ^ 5) mod 10

Resources

theory Defs
imports Main
begin
end

Template File

theory Submission
imports Defs
begin

lemma modpower5: fixes n :: nat
shows "n mod 10 = (n ^ 5) mod 10" sorry

end

Check File

theory Check
imports Submission
begin

lemma "(n::nat) mod 10 = (n ^ 5) mod 10"
by (rule Submission.modpower5)

end

Definitions File

Require Export Arith Lia.

Template File

Require Import Defs.

(* Proving this might be useful (but is not mandatory). *)
Lemma mod_power a b n :
((a mod b) ^ n) mod b = (a ^ n) mod b.

Theorem modpower5 : forall (n: nat),
n mod 10 = (n ^ 5) mod 10.
Proof.
(* todo *)

theory Defs
imports Main
begin
end

Template File

theory Submission
imports Defs
begin

lemma modpower5: fixes n :: nat
shows "n mod 10 = (n ^ 5) mod 10" sorry

end

Check File

theory Check
imports Submission
begin

lemma "(n::nat) mod 10 = (n ^ 5) mod 10"
by (rule Submission.modpower5)

end

Definitions File

-- no definitions required
-- Lean version: 3.4.2
-- Mathlib version: 2019-07-31

Template File

theorem mod_power_five : ∀ (n : ℕ), n % 10 = (n ^ 5) % 10 :=
sorry

Check File

import .submission

theorem you_did_it : ∀ (n : ℕ), n % 10 = (n ^ 5) % 10 := mod_power_five

Definitions File

(in-package "ACL2")

Template File

(in-package "ACL2")

(defthm modpower5
(implies (natp n)
(equal (mod-expt n 5 10)
(mod n 10)))
)

Check File

; The four lines just below are boilerplate, that is, the same for every
; problem.

(in-package "ACL2")
(include-book "Submission")
(set-enforce-redundancy t)
(include-book "Defs")

; The events below represent the theorem to be proved, and are copied from
; template.lisp.

(defthm modpower5
(implies (natp n)
(equal (mod-expt n 5 10)
(mod n 10)))
)

Terms and Conditions