SlideShare a Scribd company logo
1 of 81
Download to read offline
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Mechanized Ramification
Wang Shengyi
Joint work with Aquinas Hobor
National University of Singapore
April 17, 2015
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 1 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Overview
Overview
My Work Ramification
Mechanized Semantic Library Separation Logic
Coq Hoare Logic
Formalizing
Formalizing
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 2 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Hoare Triple
tPu C tQu
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 3 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Hoare Logic Rules
tPu skip tPu tP[E/x]u x := E tPu
tPu S tQu tQu T tRu
tPu S; T tRu
tB ^ Pu S tQu t␣B ^ Pu T tQu
tPu if B then S else T endif tQu
P1 ñ P2 tP2u S tQ2u Q2 ñ Q1
tP1u S tQ1u
tP ^ Bu S tPu
tPu while B do S done t␣B ^ Pu
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 4 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example I
J
tx + 1 ď 10u x := x + 1 tx ď 10u
tx ď 10 ^ x ă 10u x := x + 1 tx ď 10u
tx ď 10u while x < 10 do x := x + 1 done t␣x ă 10 ^ x ď 10u
tx ď 10u while x < 10 do x := x + 1 done tx = 10u
tP[E/x]u x:=E tPu
P1ñP2 tP2u S tQ2u Q2ñQ1
tP1u S tQ1u
tP^Bu S tPu
tPu while B do S done t␣B^Pu
P1ñP2 tP2u S tQ2u Q2ñQ1
tP1u S tQ1u
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 5 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j k
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j k
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
k
i
j
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
kj
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
i
kj
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
kj
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
i
kj
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
kj
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
i
kj
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
kj
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
i
kj
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
kj
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
j
i
k
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
i
kj
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Example II
struct li {struct li *next} *i *j;
j:=nil; while i <> nil do k:=i.next; i.next:=j; j:=i; i:=k done
nil nil
kj
i
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 6 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Loop Invariant of Example II
D α, β. list α i ^ list β j ^ α:
0 = α:
¨ β
list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j ^ list α j
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 7 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Loop Invariant of Example II
(D α, β. list α i ^ list β j ^ α:
0 = α:
¨ β)
^ (@k. reach(i, k) ^ reach(j, k) ñ k = nil)
reach(i, j)
def
= D n ě 0. reachn(i, j) reachn+1(i, j)
def
= D a, k. i ÞÑ a, k ^ reachn(k, j)
reach0(i, j)
def
= i = j list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j ^ list α j
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 7 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Hoare Logic
Loop Invariant of Example II
(D α, β. list α i ^ list β j ^ α:
0 = α:
¨ β) ^ list γ x
^ (@k. reach(i, k) ^ reach(j, k) ñ k = nil)
^ (@k. reach(x, k) ^ (reach(i, k) _ reach(j, k)) ñ k = nil))
reach(i, j)
def
= D n ě 0. reachn(i, j) reachn+1(i, j)
def
= D a, k. i ÞÑ a, k ^ reachn(k, j)
reach0(i, j)
def
= i = j list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j ^ list α j
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 7 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Separating Conjunction
P › Q
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 8 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Separating Conjunction
h |ù P › Q
def
= D h1, h2. h1 ‘ h2 = h ^ h1 |ù P ^ h2 |ù Q
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 9 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Frame Rule
tPu C tQu
tP › Fu C tQ › Fu
(mod(C) X fv(R) = H)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 10 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Loop Invariant of Example II
Hoare Logic:
(D α, β. list α i ^ list β j ^ α:
0 = α:
¨ β)
^(@k. reach(i, k) ^ reach(j, k) ñ k = nil)
reach(i, j)
def
= D n ě 0. reachn(i, j) reachn+1(i, j)
def
= D a, k. i ÞÑ a, k ^ reachn(k, j)
reach0(i, j)
def
= i = j list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j ^ list α j
Separation Logic:
D α, β. list α i › list β j ^ α:
0 = α:
¨ β
list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j › list α j
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 11 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Loop Invariant of Example II
Hoare Logic:
(D α, β. list α i ^ list β j ^ α:
0 = α:
¨ β) ^ list γ x
^(@k. reach(i, k) ^ reach(j, k) ñ k = nil)
^ (@k. reach(x, k) ^ (reach(i, k) _ reach(j, k)) ñ k = nil))
reach(i, j)
def
= D n ě 0. reachn(i, j) reachn+1(i, j)
def
= D a, k. i ÞÑ a, k ^ reachn(k, j)
reach0(i, j)
def
= i = j list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j ^ list α j
Separation Logic:
D α, β. list α i › list β j ^ α:
0 = α:
¨ β
list ϵ i
def
= i = nil list (a ¨ α) i
def
= D j. i ÞÑ a, j › list α j
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 11 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Example III
struct node {
bool m
struct node *l, *r
}
void mark(struct node *x) {
if (x == nil || x->m)
return
struct node *l = x->l
struct node *r = x->r
x->m = true
mark(l)
mark(r)
}
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 12 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Example III
struct node {
bool m
struct node *l, *r
}
void mark(struct node *x) {
if (x == nil || x->m)
return
struct node *l = x->l
struct node *r = x->r
x->m = true
mark(l)
mark(r)
}
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 12 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Frame Rule Application for Trees
#
t ÞÑ 1, l, r › tree(l, τ)
› tree(r, τ)
+
mark(l)
#
t ÞÑ 1, l, r › tree(l, τ)
› tree(r, τ)
+
tree(x, τ)
def
=(x = 0 ^ emp)_
D d, l, r. τ(x) = (d, l, r) ^ x ÞÑ d, l, r › tree(l, τ) › tree(r, τ)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 13 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Frame Rule Application for Trees
ttree(l, τ)u mark(l) ttree(l, τ)u
#
t ÞÑ 1, l, r › tree(l, τ)
› tree(r, τ)
+
mark(l)
#
t ÞÑ 1, l, r › tree(l, τ)
› tree(r, τ)
+
tree(x, τ)
def
=(x = 0 ^ emp)_
D d, l, r. τ(x) = (d, l, r) ^ x ÞÑ d, l, r › tree(l, τ) › tree(r, τ)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 13 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Example III
struct node {
bool m
struct node *l, *r
}
void mark(struct node *x) {
if (x == nil || x->m)
return
struct node *l = x->l
struct node *r = x->r
x->m = true
mark(l)
mark(r)
}
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 14 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Example III
struct node {
bool m
struct node *l, *r
}
void mark(struct node *x) {
if (x == nil || x->m)
return
struct node *l = x->l
struct node *r = x->r
x->m = true
mark(l)
mark(r)
}
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 14 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Separation Logic
Frame Rule Does Not Work
#
t ÞÑ 1, l, r Y› graph(l, γ)
Y› graph(r, γ)
+
mark(l)
#
t ÞÑ 1, l, r Y› graph(l, γ)
Y› graph(r, γ)
+
graph(x, γ)
def
=(x = 0 ^ emp)_
Dd, l, r. γ(x) = (d, l, r) ^ x ÞÑ d, l, r Y› graph(l, γ) Y› graph(l, γ)
h |ù P Y› Q
def
= Dh1, h2, h3. (h1 ‘ h2 ‘ h3 = h) ^ (h1 ‘ h2 |ù P) ^ (h2 ‘ h3 |ù Q)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 15 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Ramification
Ramify Rule
tPu C tQu R $ P › (Q ´´› R1)
tRu C tR1u
(mod(C) X fv(Q ´´› R1
) = H)
P
Q ´´› R1
R
h |ù Q ´´› R1 def
= @h1, h2. h1 ‘ h = h2 ñ h1 |ù Q ñ h2 |ù R1
.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 16 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Ramification
Ramify Rule
tPu C tQu R $ P › (Q ´´› R1)
tRu C tR1u
(mod(C) X fv(Q ´´› R1
) = H)
Q ´´› R1
h |ù Q ´´› R1 def
= @h1, h2. h1 ‘ h = h2 ñ h1 |ù Q ñ h2 |ù R1
.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 16 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Ramification
Ramify Rule
tPu C tQu R $ P › (Q ´´› R1)
tRu C tR1u
(mod(C) X fv(Q ´´› R1
) = H)
Q
Q ´´› R1
R1
h |ù Q ´´› R1 def
= @h1, h2. h1 ‘ h = h2 ñ h1 |ù Q ñ h2 |ù R1
.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 16 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Coq
Mechanizm : Coq
Dependent Type TheoryPolymorphism Higher Kinded Type
Calculus of Constructions
Calculus of Inductive Constructions
Inductive Type
Coinductive Type
Calculus of (Co)inductive Constructions
Coq Proof Assistant
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 17 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Coq
Coq
Coq Proof
Assistant
Specification
Language:
Gallina
Tactic
Language:
Ltac
Only Total
Functions
(Must
Terminate)
Wide
Applications
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 18 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Mechanized Semantic Library
Separation Algebra
Coq Definition of h1 ‘ h2 = h
Class Join (t: Type) : Type := join: t Ñ t Ñ t Ñ Prop.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 19 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Mechanized Semantic Library
Separation Algebra
Coq Definition of h1 ‘ h2 = h
Class Join (t: Type) : Type := join: t Ñ t Ñ t Ñ Prop.
Class Perm alg (t: Type) {J: Join t} : Type :=
mkPerm {
join eq: @ {x y z z’}, join x y z Ñ join x y z’ Ñ z = z’;
join assoc: @ {a b c d e}, join a b d Ñ join d c e Ñ
{f : t & join b c f ^ join a f e};
join comm: @ {a b c}, join a b c Ñ join b a c;
join positivity: @ {a a’ b b’}, join a a’ b Ñ join b b’ a Ñ a=b
}.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 19 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Mechanized Semantic Library
Separation Algebra
h |ù P › Q
def
= D h1, h2. h1 ‘ h2 = h ^ h1 |ù P ^ h2 |ù Q
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 20 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Related Works Mechanized Semantic Library
Separation Algebra
h |ù P › Q
def
= D h1, h2. h1 ‘ h2 = h ^ h1 |ù P ^ h2 |ù Q
Definition of ›
Definition sepcon {A: Type}{JA: Join A} (p q : pred A) : pred A :=
fun h:A ñ D h1 h2, join h1 h2 h ^ p h1 ^ q h2.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 20 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of the Ramification Theory Overlapping Conjunction
Overlapping Conjunction
h |ù P Y› Q
def
= Dh1, h2, h3. (h1 ‘ h2 ‘ h3 = h)^
(h1 ‘ h2 |ù P) ^ (h2 ‘ h3 |ù Q)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 21 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of the Ramification Theory Overlapping Conjunction
Overlapping Conjunction
h |ù P Y› Q
def
= Dh1, h2, h3. (h1 ‘ h2 ‘ h3 = h)^
(h1 ‘ h2 |ù P) ^ (h2 ‘ h3 |ù Q)
Coq Definition
Definition ocon {A: Type}{JA: Join A} (p q : pred A) : pred A :=
fun h:A ñD h1 h2 h3 h12 h23, join h1 h2 h12 ^ join h2 h3 h23 ^
join h12 h3 h ^ p h12 ^ q h23.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 21 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of the Ramification Theory Ramification Library
Ramification Library (Lemma 4.1 to Lemma 4.6)
precise(P, Q) P Y› R $ P › (Q ´´› Q Y› R1
)
(P › F) Y› R $ P › (Q ´´› (Q › F) Y› R1)
precise(P) R $ P › (Q ´´› R1
)
(P › F) ^ R $ P › (Q ´´› (Q › F) ^ R1)
. . .
R $ P › (P1
´´› R1
) S $ Q › (Q1
´´› S1
)
R › S $ P › Q › (P1 › Q1 ´´› R1 › S1)
precise(P, P1
) @i. P Y› Qi $ P › (P1
´´› P1
Y› Q1
i)
P Y› Q1 Y› Q2 $ P › (P1 ´´› P1 Y› Q1
1 Y› Q1
2)
h1 ď h3
def
= Dh2. h1 ‘ h2 = h3
precise(P)
def
= @h1, h2, h3. h1 ď h3 ñ h2 ď h3 ñ h1 |ù P ñ h2 |ù P ñ h1 = h2
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 22 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of the Ramification Theory Ramification Library
Custom Tactics (10 tactics)
Ltac try join h1 h2 h1h2 :=
let helper m1 m2 m1m2 :=
match goal with
| [H1: join m1 ?X, H2: join ?X m2 $ ] ñ
destruct (join assoc H1 H2) as [m1m2 [? ?]]
| [H1: join m1 ?X, H2: join ?X m2 $ ] ñ
destruct (join assoc (join comm H1) H2) as [m1m2 [? ?]]
| [H1: join m1 ?X, H2: join m2 ?X $ ] ñ
destruct (join assoc H1 (join comm H2)) as [m1m2 [? ?]]
| [H1: join m1 ?X, H2: join m2 ?X $ ] ñ
destruct (join assoc (join comm H1) (join comm H2)) as [m1m2 [? ?]]
end
in helper h1 h2 h1h2 || helper h2 h1 h1h2.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 23 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
Mathematical Graphs
Class PreGraph (Vertex: Type) Data {EV: EqDec Vertex} :=
{
valid : Vertex Ñ Prop;
node label : Vertex Ñ Data;
edge func : Vertex Ñ list Vertex
}.
graph(x, γ)
def
=(x = 0 ^ emp)_
Dd, l, r. γ(x) = (d, l, r) ^ x ÞÑ d, l, r Y› graph(l, γ) Y› graph(l, γ)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 24 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
Mathematical Graphs
Class MathGraph (Vertex : Type) Data (nV : Vertex) {EV: EqDec Vertex} :=
{
m pg :> PreGraph Vertex Data;
valid graph: @ x, valid x Ñ @ y, In y (edge func x) Ñ y = nV _ valid y;
valid not null: @ x, valid x Ñ x ­= nV
}.
graph(x, γ)
def
=(x = 0 ^ emp)_
Dd, l, r. γ(x) = (d, l, r) ^ x ÞÑ d, l, r Y› graph(l, γ) Y› graph(l, γ)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 25 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
Mathematical Graphs
Class BiGraph (Vertex Data: Type) {EV: EqDec Vertex} :=
{
b pg :> PreGraph Vertex Data;
only two neighbours :
@ v:Vertex,{v1: Vertex & {v2 : Vertex | edge func v = v1 :: v2 :: nil}}
}.
graph(x, γ)
def
=(x = 0 ^ emp)_
Dd, l, r. γ(x) = (d, l, r) ^ x ÞÑ d, l, r Y› graph(l, γ) Y› graph(l, γ)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 26 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
Mathematical Graphs
Class BiMathGraph (Vertex Data : Type) (nV : Vertex) {EV: EqDec Vertex} :=
{
bm bi :> BiGraph Vertex Data;
bm ma :> MathGraph Vertex Data nV;
pg the same: m pg = b pg
}.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 27 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
Lemmas about Mathematical Graphs
Lemma finite reachable computable:
@ (mg : MathGraph V D null) x l, valid x Ñ
(@ y, reachable m pg x y Ñ In y l) Ñ D l’, reachable list m pg x l’ ^ NoDup l’.
Definition reachable list (pg : PreGraph V D) (x : V) (L : list V) : Prop :=
valid x ^ @ y, In y L Ø reachable pg x y.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 28 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
It is Extremely Hard
• We essentially need to determine a list of the reachable vertices in a graph.
Obvious idea: BFS.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 29 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
It is Extremely Hard
• We essentially need to determine a list of the reachable vertices in a graph.
Obvious idea: BFS.
• Contructing BFS is hard.
• It could go into a loop, which is why BFS must track already visited nodes.
• The graph could have infinite nodes, which is why BFS must have an upper
bound argument. (a computer’s memory is finite).
• Coq does not support general recursion.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 29 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
It is Extremely Hard
• We essentially need to determine a list of the reachable vertices in a graph.
Obvious idea: BFS.
• Contructing BFS is hard.
• It could go into a loop, which is why BFS must track already visited nodes.
• The graph could have infinite nodes, which is why BFS must have an upper
bound argument. (a computer’s memory is finite).
• Coq does not support general recursion.
• It is still hard to prove the result of BFS is the whole reachable set.
• When BFS reaches an already-visited node, how do we know it will not forget
about its children?
• When BFS terminates, there are two situations to prove.
• Reachable nodes are those nodes with a path. The exploration path and the
given path need not be at all similar.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 29 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
It is Extremely Hard
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 30 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Mathematical Graphs
It is Extremely Hard
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 31 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs
graph(x, γ)
def
=(x = 0 ^ emp) _ Dd, l, r. γ(x) = (d, l, r)^
x ÞÑ d, l, r Y› graph(l, γ) Y› graph(l, γ)
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 32 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Recursive Predicates
P(x) = . . . x . . . P . . .
F(p) = λx.(. . . x . . . p . . . ) and P = µF
P(x) = (µF)(x) = F(µF)(x) = F(P)(x) = (. . . x . . . P . . . )
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 33 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Covariant and Contractive predicates
Covariant predicates:
Tarski’s fixed point for order-reserving functions
Contractive predicates:
Indirection theory of step-indexing recursion
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 34 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : First Attempt (strategy proposed in HV)
Definition graph fun (Q: adr Ñ pred world) (x: adr) :=
(!!(x = 0) && emp) ||
(EX d:adr, EX l:adr, EX r:adr, !!(gamma bi x = (d, l, r)) &&
graph node x d l r Y› ((Q l) Y› (Q r))).
Definition graph := corec graph fun.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 35 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : First Attempt (strategy proposed in HV)
Lemma 4.7
graph(x, γ) %$ iter sepcon reach(γ, x) λx.x ÞÑ γ(x)
iter sepcon ta1, a2, . . . , anu p
def
= p(a1) › p(a2) › . . . › p(an).
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 36 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : Second Attempt
Definition graph fun (Q: adr Ñ pred world) (x: adr) :=
(!!(x = 0) && emp) ||
(EX d:adr, EX l:adr, EX r:adr, !!(gamma bi x = (d, l, r)) &&
graph node x d l r Y› ((Ź Q l) Y› (Ź Q r))).
Definition graph := HORec graph fun.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 37 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : Second Attempt
Lemma 4.9
@x, γ. precise(graph(x, γ))
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 38 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : Second Attempt
Not Precise
@P. ␣precise(ŹP).
This problem seems to be lurking in this style of recursion for 5-10 years.
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 38 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : Third Attempt
Lemma 4.7
graph(x, γ) %$ iter sepcon reach(γ, x) λx.x ÞÑ γ(x)
Definition graph (x : adr) (bimg : @BiMathGraph adr nat 0 natEqDec): pred
world :=
(!!(x = 0) && emp) || EX l : list adr, !!reachable list b pg x l &&
iter sepcon l (graph cell bm bi).
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 39 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Spatial Graphs : Third Attempt
Lemma graph unfold: @ x g,
graph x g = (!!(x = 0) && emp) ||
EX d:nat, EX l:adr, EX r:adr, !!(gamma bm bi x = (d, l, r) ^ valid x) &&
(trinode x d l r Y› graph l g Y› graph r g).
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 40 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Formalization of Graphs Spatial Graphs
Succeed
Lemma 4.14
reach(γ1, S1
1) Ě reach(γ, S1) γ1 Ò S1
1 = γ Ò S1
graphs(S1, γ) Y› graphs(S2, γ) $ graphs(S1, γ)›
(graphs(S1
1, γ1
) ´´› graphs(S1
1, γ1
) Y› graphs(S2, γ1
))
graphs tx1, x2, . . . , xnu γ = graph(x1, γ) Y› graph(x2, γ) Y› . . . Y› graph(xn, γ).
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 41 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Summary
Summary
Lemmas and theorems in the paper 13
Lemmas and theorems in Coq source code 250
Definitions in Coq source code 106
Lines in Coq source code (dense) 3996
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 42 / 43
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Thank you!
Wang Shengyi (NUS) Mechanized Ramification April 17, 2015 43 / 43

More Related Content

Recently uploaded

Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencySheetal Arora
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxgindu3009
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)PraveenaKalaiselvan1
 
Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfSumit Kumar yadav
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)Areesha Ahmad
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​kaibalyasahoo82800
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...anilsa9823
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoSérgio Sacani
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsSérgio Sacani
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSSLeenakshiTyagi
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPirithiRaju
 
Orientation, design and principles of polyhouse
Orientation, design and principles of polyhouseOrientation, design and principles of polyhouse
Orientation, design and principles of polyhousejana861314
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptxRajatChauhan518211
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Sérgio Sacani
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )aarthirajkumar25
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsSumit Kumar yadav
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PPRINCE C P
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTSérgio Sacani
 
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCESTERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCEPRINCE C P
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfSumit Kumar yadav
 

Recently uploaded (20)

Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls AgencyHire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
Hire 💕 9907093804 Hooghly Call Girls Service Call Girls Agency
 
Presentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptxPresentation Vikram Lander by Vedansh Gupta.pptx
Presentation Vikram Lander by Vedansh Gupta.pptx
 
Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)Recombinant DNA technology (Immunological screening)
Recombinant DNA technology (Immunological screening)
 
Chemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdfChemistry 4th semester series (krishna).pdf
Chemistry 4th semester series (krishna).pdf
 
GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)GBSN - Microbiology (Unit 2)
GBSN - Microbiology (Unit 2)
 
Nanoparticles synthesis and characterization​ ​
Nanoparticles synthesis and characterization​  ​Nanoparticles synthesis and characterization​  ​
Nanoparticles synthesis and characterization​ ​
 
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
Lucknow 💋 Russian Call Girls Lucknow Finest Escorts Service 8923113531 Availa...
 
Isotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on IoIsotopic evidence of long-lived volcanism on Io
Isotopic evidence of long-lived volcanism on Io
 
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroidsHubble Asteroid Hunter III. Physical properties of newly found asteroids
Hubble Asteroid Hunter III. Physical properties of newly found asteroids
 
DIFFERENCE IN BACK CROSS AND TEST CROSS
DIFFERENCE IN  BACK CROSS AND TEST CROSSDIFFERENCE IN  BACK CROSS AND TEST CROSS
DIFFERENCE IN BACK CROSS AND TEST CROSS
 
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdfPests of cotton_Sucking_Pests_Dr.UPR.pdf
Pests of cotton_Sucking_Pests_Dr.UPR.pdf
 
Orientation, design and principles of polyhouse
Orientation, design and principles of polyhouseOrientation, design and principles of polyhouse
Orientation, design and principles of polyhouse
 
Green chemistry and Sustainable development.pptx
Green chemistry  and Sustainable development.pptxGreen chemistry  and Sustainable development.pptx
Green chemistry and Sustainable development.pptx
 
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
Discovery of an Accretion Streamer and a Slow Wide-angle Outflow around FUOri...
 
Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )Recombination DNA Technology (Nucleic Acid Hybridization )
Recombination DNA Technology (Nucleic Acid Hybridization )
 
Botany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questionsBotany krishna series 2nd semester Only Mcq type questions
Botany krishna series 2nd semester Only Mcq type questions
 
VIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C PVIRUSES structure and classification ppt by Dr.Prince C P
VIRUSES structure and classification ppt by Dr.Prince C P
 
Disentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOSTDisentangling the origin of chemical differences using GHOST
Disentangling the origin of chemical differences using GHOST
 
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCESTERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
STERILITY TESTING OF PHARMACEUTICALS ppt by DR.C.P.PRINCE
 
Zoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdfZoology 4th semester series (krishna).pdf
Zoology 4th semester series (krishna).pdf
 

Featured

PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024Neil Kimberley
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)contently
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024Albert Qian
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsKurio // The Social Media Age(ncy)
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Search Engine Journal
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summarySpeakerHub
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next Tessa Mero
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentLily Ray
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best PracticesVit Horky
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project managementMindGenius
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...RachelPearson36
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Applitools
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at WorkGetSmarter
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...DevGAMM Conference
 

Featured (20)

Skeleton Culture Code
Skeleton Culture CodeSkeleton Culture Code
Skeleton Culture Code
 
PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024PEPSICO Presentation to CAGNY Conference Feb 2024
PEPSICO Presentation to CAGNY Conference Feb 2024
 
Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)Content Methodology: A Best Practices Report (Webinar)
Content Methodology: A Best Practices Report (Webinar)
 
How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024How to Prepare For a Successful Job Search for 2024
How to Prepare For a Successful Job Search for 2024
 
Social Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie InsightsSocial Media Marketing Trends 2024 // The Global Indie Insights
Social Media Marketing Trends 2024 // The Global Indie Insights
 
Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024Trends In Paid Search: Navigating The Digital Landscape In 2024
Trends In Paid Search: Navigating The Digital Landscape In 2024
 
5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary5 Public speaking tips from TED - Visualized summary
5 Public speaking tips from TED - Visualized summary
 
ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd ChatGPT and the Future of Work - Clark Boyd
ChatGPT and the Future of Work - Clark Boyd
 
Getting into the tech field. what next
Getting into the tech field. what next Getting into the tech field. what next
Getting into the tech field. what next
 
Google's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search IntentGoogle's Just Not That Into You: Understanding Core Updates & Search Intent
Google's Just Not That Into You: Understanding Core Updates & Search Intent
 
How to have difficult conversations
How to have difficult conversations How to have difficult conversations
How to have difficult conversations
 
Introduction to Data Science
Introduction to Data ScienceIntroduction to Data Science
Introduction to Data Science
 
Time Management & Productivity - Best Practices
Time Management & Productivity -  Best PracticesTime Management & Productivity -  Best Practices
Time Management & Productivity - Best Practices
 
The six step guide to practical project management
The six step guide to practical project managementThe six step guide to practical project management
The six step guide to practical project management
 
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
 
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
Unlocking the Power of ChatGPT and AI in Testing - A Real-World Look, present...
 
12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work12 Ways to Increase Your Influence at Work
12 Ways to Increase Your Influence at Work
 
ChatGPT webinar slides
ChatGPT webinar slidesChatGPT webinar slides
ChatGPT webinar slides
 
More than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike RoutesMore than Just Lines on a Map: Best Practices for U.S Bike Routes
More than Just Lines on a Map: Best Practices for U.S Bike Routes
 
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
 

Mechanized Ramification