Wolfram Language
Paclet Repository
Community-contributed installable additions to the Wolfram Language
Primary Navigation
Categories
Cloud & Deployment
Core Language & Structure
Data Manipulation & Analysis
Engineering Data & Computation
External Interfaces & Connections
Financial Data & Computation
Geographic Data & Computation
Geometry
Graphs & Networks
Higher Mathematical Computation
Images
Knowledge Representation & Natural Language
Machine Learning
Notebook Documents & Presentation
Scientific and Medical Data & Computation
Social, Cultural & Linguistic Data
Strings & Text
Symbolic & Numeric Computation
System Operation & Setup
Time-Related Computation
User Interface Construction
Visualization & Graphics
Random Paclet
Alphabetical List
Using Paclets
Create a Paclet
Get Started
Download Definition Notebook
Learn More about
Wolfram Language
CodeEquivalenceUtilities
Guides
Code Equivalence Utilities
Tech Notes
Adding New Transformation Rules
Symbols
CodeEquivalentQ
EquivalenceTestData
FromCanonicalForm
MakeCanonicalForm
ToCanonicalForm
TransformHold
TransformRelease
$AllowedEvaluationPatterns
Wolfram`CodeEquivalenceUtilities`
C
o
d
e
E
q
u
i
v
a
l
e
n
t
Q
C
o
d
e
E
q
u
i
v
a
l
e
n
t
Q
[
e
x
p
r
1
,
e
x
p
r
2
]
y
i
e
l
d
s
T
r
u
e
i
f
e
x
p
r
1
a
n
d
e
x
p
r
2
a
r
e
e
q
u
i
v
a
l
e
n
t
c
o
m
p
u
t
a
t
i
o
n
s
a
n
d
y
i
e
l
d
s
F
a
l
s
e
o
t
h
e
r
w
i
s
e
.
D
e
t
a
i
l
s
a
n
d
O
p
t
i
o
n
s
Examples
(
4
)
Basic Examples
(
2
)
Check if two expressions are equivalent:
I
n
[
1
]
:
=
C
o
d
e
E
q
u
i
v
a
l
e
n
t
Q
[
R
a
n
d
o
m
I
n
t
e
g
e
r
/
@
R
a
n
g
e
[
5
]
,
A
r
r
a
y
[
R
a
n
d
o
m
I
n
t
e
g
e
r
,
5
]
]
O
u
t
[
1
]
=
T
r
u
e
Equivalence testing does not need to rely on evaluation:
I
n
[
1
]
:
=
C
o
d
e
E
q
u
i
v
a
l
e
n
t
Q
[
P
a
u
s
e
[
3
1
5
3
6
0
0
0
0
0
0
]
;
T
a
b
l
e
[
R
a
n
g
e
/
@
R
a
n
g
e
[
i
]
,
{
i
,
2
^
1
0
0
}
]
,
P
a
u
s
e
[
3
1
5
3
6
0
0
0
0
0
0
]
;
T
a
b
l
e
[
A
r
r
a
y
[
R
a
n
g
e
,
j
]
,
{
j
,
1
,
2
^
1
0
0
}
]
]
O
u
t
[
1
]
=
T
r
u
e
I
n
[
2
]
:
=
C
o
d
e
E
q
u
i
v
a
l
e
n
t
Q
[
P
a
u
s
e
[
3
1
5
3
6
0
0
0
0
0
0
]
;
T
a
b
l
e
[
R
a
n
g
e
/
@
R
a
n
g
e
[
i
]
,
{
i
,
2
^
1
0
0
}
]
,
P
a
u
s
e
[
3
1
5
3
6
0
0
0
0
0
0
]
;
T
a
b
l
e
[
A
r
r
a
y
[
R
a
n
g
e
,
j
]
,
{
j
,
1
,
2
^
1
0
0
+
1
}
]
]
O
u
t
[
2
]
=
F
a
l
s
e
P
r
o
p
e
r
t
i
e
s
&
R
e
l
a
t
i
o
n
s
(
1
)
P
o
s
s
i
b
l
e
I
s
s
u
e
s
(
1
)
S
e
e
A
l
s
o
T
o
C
a
n
o
n
i
c
a
l
F
o
r
m
▪
M
a
k
e
C
a
n
o
n
i
c
a
l
F
o
r
m
▪
E
q
u
i
v
a
l
e
n
c
e
T
e
s
t
D
a
t
a
▪
$
A
l
l
o
w
e
d
E
v
a
l
u
a
t
i
o
n
P
a
t
t
e
r
n
s
R
e
l
a
t
e
d
G
u
i
d
e
s
▪
C
o
d
e
E
q
u
i
v
a
l
e
n
c
e
U
t
i
l
i
t
i
e
s
"
"