COMP 2711H: Lecture 23
Date: 2024-10-27 23:59:41
Reviewed:
Topic / Chapter:
summary
❓Questions
Notes
Congruence
- 
Congruence- congruence:  iff 
- alternative notation: ,
 
- example:
- theorem: iff has same remainders when divided by
- proof:
- if ,  ()
- then 
- same, and unique remainder!
 
 
- if  same remainder
- then
 
 
- if ,  ()
 
- congruence:  iff 
- 
More theorem- theorem: let , 
- then following properties hold
- 
- proof: ,
- then
 
- 
- proof: , 
- thus
 
 
- proof: , 
- (special case of above)
- 
- 👨🏫 can be proved using definition
 
- 
- when ?
- 👨🏫 False, counter example: 
- yet
 
 
- 
- applying multiple times
 
 
 
- theorem: let , 
Modular Multiplicative Inverse
- 
Modular multiplicative inverse- if we have multiplicative inverse
- we can cancel, like:
- 👨🏫 which is why division is closed within real numbers:
- all real numbers (except ): has multiplicative inverse
 
 
- modular multiplicative inverse : integer s.t.
- MMI: doesn't always exist
- e.g. 
- no number s.t. exist
- as: will always be even
- and subtraction of from even no. will return in even no.
 
 
- e.g. 
- but sometimes exist
- e.g. 
- when
 
- thus: 
- as you can multiply 's MMI, on both sides
 
 
- e.g. 
 
- if we have multiplicative inverse
- 
Finite field- when calculating , range are
- shift function (all in )
- e.g. 
- (modulo)
 
- claim: shift function is a permutation
- 👨🏫 trivial, but one can prove by showing
- it's one-to-one and onto
 
 
- 👨🏫 trivial, but one can prove by showing
- for every permutation: we can create a graph
- e.g. edge from vertex to vertex
 
 
graph LR
    0((0))
    1((1))
    2((2))
    3((3))
    4((4))
    5((5))
    0-->2; 2-->4; 4-->0
    1-->3; 3-->5; 5-->1
- graph of permutation: multiple disjoint cycles
- finding an MMI of : must be within the same cycle
- for , it's finding starting from
- also, must be within the same cycle as 
- unless: cannot reach how many times we multiply
 
 
- to find MMI of , draw cycle again
graph LR
    0((0))
    1((1))
    2((2))
    3((3))
    4((4))
    5((5))
    0-->5; 5-->4; 4-->3
    3-->2; 2-->1; 1-->0
- because <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">5</span></span></span></span> is in the same cycle as <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span>: <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8141em;"></span><span class="mord"><span class="mord">5</span><span class="msupsub"><span class="vlist-t"><span class="vlist-r"><span class="vlist" style="height:0.8141em;"><span style="top:-3.063em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight"><span class="mord mtight">−</span><span class="mord mtight">1</span></span></span></span></span></span></span></span></span></span></span></span> exists in <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.4306em;"></span><span class="mord mathnormal">n</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">6</span></span></span></span>
- when  are in the same cycle (of )
- multiple of  can definitely reach 
- as it means
 
- but, when are  and  in the same cycle?
- = when there is only one cycle (as can be added to generate other numbers)
 
 
- multiple of  can definitely reach 
- claim: all cycles have the same size
- as every cycle: shift of another
 
- suppose: 
- each cycle: has size
- proof
- let
- then the cycle including :
- all numbers appearing in cycle (including ):
- linear combination of
- which: are always divisible by
 
 
 
- claim: 
- then no. of cycles:
- size of each cycle:
- proof
- as 
- also appears in cycle involving
- 
- 👨🏫 after traverse from , we will find which is effectively
 
 
- after traversing  times, we reach 
- for
- thus the cycle containing  contains all multiples of 
- so size:
- and as all cycles of same size:
 
 
 
- as 
 
- theorem:  has MMI  iff 
- this case: will be in the cycle
- and thus: all numbers will be in the cycle
 
- (easier) proof: finding inverse = finding s.t.
- if , can we obtain weaker result?
- theorem: let and
- then
 
- proof:
- 
- apply: Euclid's lemma
- as and
- thus proved
 
- 👨🏫 graph is more intuitive, yet this is more concise
 
- 
Fast modular exponentiation- finding :
- e.g.
- stupid way: computing , then computing 
- workload would be immense if:
 
 
- smarter way
- or:
 
- pseudocode
pow(a, b, c): if a == 0: return 0 if b == 0: return 1 if b == 1: return 1 % c d = pow(a, b / 2, c) d *= d d %= c if (b % 2 == 1): a %= c # if we want small a d *= a d %= c return d
- example: divisibility by 
- a number: divisible by iff its digits are divisible by
- e.g. in base 10: number  equals
- where : -th digit (from the back, starting from )
 
- and claim:
- holds as 
- 👨🏫: same for 9
- for modulo , it also works it's base (basically any )
 
- holds as 
 
- what if: we want to compute  on base 10 integer?
- as 
- thus
 
- as 
- theorem: let : polynomial w/ integer coefficients
- if 
- as each
 
 
 
- finding :
Chinese Remainder Theorem
- 
Chinese remainder theorem- linear equation 
- solvable iff
 
- consider: cycle starting w/  for 
- : must be in the cycle
 
- how may solutions to  exist if ?
- no. of solutions:
 
- proof:
- consider: cycle, which has size (as )
- if : must be somewhere in cycle, as 
- s.t.
- we can traverse  extra times to reach the same point
- 👨🏫 no other solutions!
 
 
- as ,
- generally:
 
- as we want 
 
- for following systems of equation
- assume: 
- and
- and
- 👨🏫 to ensure that there will be exactly 1 solution
 
- find value of  satisfying all conditions
- finding solution: is it always possible?
 
 
- assume: 
- let , 
- then
- and
- can above two equations be combined?
 
- let  solution to individual equations
- then following also holds
 
- then following also holds
- example
- : 1 solution 
- then: create cycle ()
 
 
- linear equation 
graph LR
      0((0))
      1((1))
      2((2))
      3((3))
      4((4))
      5((5))
      6((6))
      3-->1
      1-->6
      6-->4
      4-->2
      2-->0
      0-->5
      5-->3
  - find <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span> (<span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>) from the cycle
  - as <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">⊥</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.5806em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>, it can always be done
    - as <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mop"><span style="margin-right:0.01389em;">g</span>cd</span><span class="mopen">(</span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span><span class="mspace" style="margin-right:0.2778em;"></span><span class="mrel">=</span><span class="mspace" style="margin-right:0.2778em;"></span></span><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">1</span></span></span></span> is in cycle with <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6444em;"></span><span class="mord">0</span></span></span></span>
- and such solution: unique in <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:1em;vertical-align:-0.25em;"></span><span class="mopen">[</span><span class="mord">0</span><span class="mpunct">,</span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mclose">)</span></span></span></span>
  - unique as, within the cycle <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.7333em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">x</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mspace" style="margin-right:0.2222em;"></span><span class="mbin">+</span><span class="mspace" style="margin-right:0.2222em;"></span></span><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">1</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span><span class="mord mathnormal" style="margin-right:0.03148em;">k</span><span class="mspace allowbreak"></span><span class="mspace" style="margin-right:0.6667em;"></span></span><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord"><span class="mord mathrm">mod</span></span></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mspace" style="margin-right:0.1667em;"></span><span class="mord"><span class="mord mathnormal">n</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>, there is only place to access <span class="katex"><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.8444em;vertical-align:-0.15em;"></span><span class="mord"><span class="mord mathnormal">b</span><span class="msupsub"><span class="vlist-t vlist-t2"><span class="vlist-r"><span class="vlist" style="height:0.3011em;"><span style="top:-2.55em;margin-left:0em;margin-right:0.05em;"><span class="pstrut" style="height:2.7em;"></span><span class="sizing reset-size6 size3 mtight"><span class="mord mtight">2</span></span></span></span><span class="vlist-s"></span></span><span class="vlist-r"><span class="vlist" style="height:0.15em;"><span></span></span></span></span></span></span></span></span></span>
    - without repeating
- Chinese Remainder Theorem: can the value be found exactly?
- let : positive integers
- s.t.
 
- and system of linear congruences exist:
- has: unique solution
 
- let : positive integers
- above: equivalent to previous statement, as
- , thus  exists for 
- and we can multiply to both sides
- and let
 
 
- , thus  exists for 
- for , solution:
- proof of uniqueness
- we can merge the first 2 equations
- keep doing so until there are 2 equations (= base case)