Автономная некоммерческая |  | Autonomous noncommercial
---|---|---
организация высшего | organization of higher
образования | education
«Университет Иннополис» | «Innopolis University»

ВЫПУСКНАЯ КВАЛИФИКАЦИОННАЯ РАБОТА
ПО НАПРАВЛЕНИЮ ПОДГОТОВКИ
09.03.01 — «ИНФОРМАТИКА И ВЫЧИСЛИТЕЛЬНАЯ ТЕХНИКА»

GRADUATE THESIS
MAJOR: ”COMPUTER SCIENCE”

Тема: |  | Статическая инструментация байткода виртуальной машины Dalvik
---|---|---

Topic: |  | Static Dalvik VM bytecode instrumentation
---|---|---

Работу выполнил / |  | Минибаев Евгений Маратович / |  |
---|---|---|---|---
Thesis is executed by |  | Eugene Minibaev Maratovich |  | подпись / signature

Научный руководитель / |  | Нестор Катано Коллазос / |  |
---|---|---|---|---
Thesis supervisor |  | Néstor Cataño Collazos |  | подпись / signature

Иннополис, Innopolis, 2017

###### Contents

  1. 0 Abstract
  2. 1 Introduction
  3. 2 Background theory
    1. 1 Android Application structure
    2. 2 Resources
    3. 3 Android Components
    4. 4 Messaging system
    5. 5 Activity lifecycle
    6. 6 Manifest Permissions
    7. 7 Android system architecture
    8. 8 Dex files
  4. 3 Results
    1. 1 Steal the Zygote work
    2. 2 The process substitution
    3. 3 Application repacking
    4. 4 Implementation dependencies
  5. 4 Related Work
  6. 5 Future Work
  7. 6 Methods signatures of c
  8. 7 Stub geneneration based on dex

###### List of Figures

  1. 1 Mobile OS market share
  2. 1 Android APK structure
  3. 2 Activity Lifecycle
  4. 3 Application launch
  5. 4 JAR and APK comparison

##  Chapter 0 Abstract

This work proposes a novel approach to restricting the access for blacklisted
Android system API calls. Main feature of the suggested method introduced in
this paper is that it requires only rootless or (user-mode) access to the
system unlike previous works. For that reason this method is valuable for end-
users due to the possibility of project distribution via Play Market and it
does not require any phone system modifications and/or updates. This paper
explains the required background of Android OS necessary for understanding and
describes the method for modification Android application. In this paper the
proof-of-concept implementation. That is able to block the application’s IMEI
requests is introduced. Also this paper lists unsuccessful methods that tried
to provide the user security. Obviously with those restrictions application
may lack some of features that can only be granted in unsecured environment.

##  Chapter 1 Introduction

For the past 8 years Google, Inc and Open Handset Alliance confidently remain
undisputed leaders in the market of mobile operating systems. In the middle of
the 2016 their well-known product named Android has almost 90% of mobile OS
market share Figure 1 sold to the end users as for 2015 there were nearly 14̇
billion active devices working under this operating system [6]. Therefore it
is essential to be ensured in the quality of the security and user experience
of that platform.

Figure 1: Mobile OS market share

One of the important features of this platform is that anyone can create and
distribute applications with the instruments and libraries provided by the
Android ecosystem. Developers can implement their apps with either Java (SDK)
or C/C++ (NDK) development kits and then distribute it via the Google Play.

Obviously most of the applications will be useless if they cannot be able to
work with the personal data and Android platform isn’t an exception. As long
as developers make mistakes that implies the problem of improper handling of
that important data. Some studies show that it often takes the place in the
real world applications [8] [10].

Another aspect of that issue is that developers usually require more access
than their application really needs. Despite the attempts to connect semantic
purpose of the application and the requested permissions[16], the reality
shows that meta information of the application usually is not enough [5].

From user’s perspective it may seem that some instant messenger applications,
which requires for their work the camera and the SMS reading permissions,
don’t seem legitimate. But still those can be used in the proper way. For
example the camera permission may improve the quality of the photo and SMS
reading permission may be used for the account authentication. Therefore it
seems impossible (or almost impossible) to distinguish the malicious and
benign permissions.

User decision can be taken into account as a possible solution for that
problem. But the problem is that Android doesn’t have such possibilities. The
solution proposed in this paper presents a technique that gives a user the
possibility to deny selected permissions of the application.

The chapter of Background theory presents essential technical information
required for complete understanding of the solution. The following chapter of
Results presents the output of the research and describes the implemented
proof of concept. As long as the area of the Android security is not new, the
last chapter of Related Works discusses the similar works that have been done
on this subject or somehow bounded to this issue. The possible consequences
for research on this subject is in the last chapter Future Works.

##  Chapter 2 Background theory

###  1 Android Application structure

Every Android application is a APK zip archive similar to Java jar files. You
can see its contents at the Figure 1. This files are distributed via official
Google Play application that is installed with the OS.

Figure 1: Android APK structure

The main code of the application is placed to the classes.dex file. This is a
special bytecode file format that is supposed to run on the Dalvik Virtual
Machine. It consists of the compiled .class files that are built on the Java
code and are represented in more a optimized way. It is also possible to write
a native code in C/C++ languages with the Android NDK. Finally the code is
compiled in the Linux shared libraries (.so files) and placed to the lib
directory. The last one is assessed via Java Native Interface (JNI) same as in
usual Java.

The AndroidManifest.xml contains meta information of the packages in binary
XML format. This, for example, includes the main Activity class and
permissions information. The same way as in the jar files the META-INF
contains signatures and hashes of the files in the archive.

The res and assets directory contains resources data and resources.arsc, and
the meta information of both.

###  2 Resources

The developers of Android application can use resources for extraction of the
application data and to ease the development process. Those are written in the
XML format and may contain some constants, graphics, application layouts, etc.
All the access in the code is performed via fixed class R similar to Java
static field access in form R.$<$type$>$.$<$name$>$, e.g: R.string.my-string.
During the compilation the compilation types created as nested classes of R,
and the access is exactly as to the static field.

###  3 Android Components

Android application is built on one or more components. There are four types
of such building blocks [13]:

  * •

Activities is the entry point for the main interacting interface with the
user. It represents a single screen with a user interface.

  * •

Services is a general-purpose entry point for keeping an app running in the
background for all kinds of reasons. It is a component that runs in the
background to perform long-running operations or to perform work for remote
processes. A service does not provide a user interface.

  * •

Broadcast Receivers is a component that enables the system to deliver events
to the app outside of a regular user flow, allowing the app to respond to
system-wide broadcast announcements.

  * •

Content Providers manages a shared set of app data that applications can store
in the file system, in a SQLite database, on the web, or on any other
persistent storage location that app can access.

###  4 Messaging system

Android OS provides a quite complicated communication system between
components. It is called an Intent. It is simply a message that contain an
address and data for transmission. These message objects can be used both for
inner- and inter-application communication. Besides those variants such
messages can be sent by operating system.

###  5 Activity lifecycle

Figure 2: Activity Lifecycle

In the application there may be many entry points and all of them are
independent. The overall developing concept is reactive that means the
application should react on the events via callbacks. Some of them are
onCreate, onPause, onDestroy and the rest is presented at Figure 2. In other
words the Activity flow represents a state machine where the transitions are
events and the states are callbacks provided by developers and they are
executed on the event. From this flow it is also important to mention that the
application is notified when they’re going to suspend and resume unlike in
other popular OSes.

The application launch can be performed via corresponding system call with
some predefined intent messages. This also includes an example of the user
interaction with launching apps via menu application.

###  6 Manifest Permissions

For performing system calls the Android OS provides the permission system.
During the installation a user sees the requested permissions and can decide
whether to accept them and install the application, or to deny those requests.
This list of such requirements is placed to the AndroidManifest.xml file.

There is a big list of system permissions. In addition developers can also
define their own. All of them are divided into four protection levels [14]:

  * •

Normal permissions cover areas where app needs to access data or resources
outside the app’s sandbox, but where there’s very little risk to the user’s
privacy or the operation of other apps. The system automatically grants the
permission of that level to the app.

  * •

Dangerous permissions cover areas where the app wants data or resources that
involve the user’s private information, or could potentially affect the user’s
stored data or the operation of other apps. Those ones are granted after user
confirmation.

  * •

Signature permission that the system grants only if the requesting application
is signed with the same certificate as the application that declared the
permission.

  * •

Signature or system permission that the system grants only to applications
that are in the Android system image or that are signed with the same
certificate as the application that declared the permission.

One of the problems with the permissions is that they should be either applied
all at once, or nothing at all. So a user cannot accept only some pieces of
these requests. The developers of the Android OS also understand this problem.
But because they are very limited in the modification of the architecture they
cannot change a lot.

Despite the beginning with the Android 6.0 developers can ask for some
required permissions in runtime [1]. But it is still not really practical for
two reasons. Firstly, due to platform version compatibility developers still
may write the code in the old way and ask all required permissions during the
installation. The second problem is that only nearly a third [2] of all
existing devices is able to use runtime permissions.

###  7 Android system architecture

Android operating system is a number of components built on the modified Linux
kernel and most of the features of Linux derived to that mobile OS. Also
Android developers was very mindful about the architectural design of the
platform in general and so this platform is one of the most secure from the
user’s perspective [11].

Figure 3: Application launch

All applications are separated from each other. This is enforced by DAC
(Discretionary Access Control) from Linux kernel by assigning each app unique
user and private directory. Besides every application is running in its own
copy of Dalvik VM (or DVM) [9]. DVM is an alternative to Java virtual machine
for the dex bytecode. The process that copies such VMs is called Zygote. Its
job is to perform Linux fork() system call and pass the control to the app. An
overall controlling is performed via ActivityManager. You can find more
complete application launch system flow at the Figure 3.

###  8 Dex files

The class.dex files represents the code of the application in the Dalvik
bytecode format. It can be compared to .class Java bytecode files. The dex
file is actually excluded from many .class files (Figure 4) in a more
optimized way, because strings don’t need to be duplicated in one file.

Figure 4: JAR and APK comparison

The dex file consists of a header, the following table of strings, class
definitions, and then indexes. The instructions of Dalvik bytecode are based
on these indexes. So if we want to search for some function MyClass.func. We
need to search for a class definition of MyClass in the method list. And then
based on an index in that list and in the method table to find the method that
maps to string “func”. The code example that can traverse these tables and
print method signature of the class you can find at chapter 6. The real
instruction of the bytecode work with the index in the method list.

opcode | prefix | instruction size
---|---|---
invoke-virtual | 0x6e | 6 bytes
invoke-super | 0x6f | 6 bytes
invoke-direct | 0x70 | 6 bytes
invoke-static | 0x71 | 6 bytes
invoke-interface | 0x72 | 6 bytes
invoke-virtual/range | 0x74 | 6 bytes
invoke-super/range | 0x75 | 6 bytes
invoke-direct/range | 0x76 | 6 bytes
invoke-static/range | 0x77 | 6 bytes
Table 1: invoke bytecode listing

The function call is performed via invoke-kind opcode family. It is important
to mention that all invoke-kind bytecode instructions have the same size:
Table 1. So after patching method call with other type of invoke code doesn’t
need to be re-aligned and resulted bytes remains the same. The patching in
proof-of-concept is implemented in the such way.

##  Chapter 3 Results

The main research was held in the area of giving the user a possibility of
limiting the application permissions requests. One of the interesting points
of Android is that it doesn’t forbid access to the installed application code
as well as listing installed application. Therefore it is possible to modify
the code of the specified application. After researching the operating system
main possible scenarios have been discovered:

  * •

Steal the Zygote work: perform fork and then app loading to the new process

  * •

The process substitution: loading of the application and substitution of the
current process with the new one

  * •

Application repacking and reinstalling

All of these methods include the APK loading, searching for the dangerous
calls and patching them with the secure versions. The following sections
describe the results of each method.

The other issue that occurred is that because the code in fact is a memory
mapped structure comprising the whole code of the application, it is not
possible to modify the code of a class dynamically. In fact, because of the
second constraint, it would be hard to modify a single class anyway, without
modifying the code of the other classes. Therefore the modification of the
bytecode cannot be performed on the already launched code.

###  1 Steal the Zygote work

Because all application start with the different users and therefore run in
the unaccessible memory we cannot directly modify the running application
data. So the essential way of launching tampered application code is a
becoming a Zygote itself. As long as the work of the Zygote is quite simple it
shouldn’t be difficult.

Unfortunately fork() is not recommended for usage for user processes because
it is internal API. The consequent issue with the application loading is
described in the following section.

###  2 The process substitution

If we cannot create new processes for the tampered application we can still
attempt to load the code and to pass all the callbacks to the new instance of
Activity.

In practice this is also a hard way because it should initialize the private
members of Activity instance and the thread information. Also there is a good
probability of collision resource classes during the loading.

###  3 Application repacking

As long as more “dynamic” methods don’t work or are too complicated the last
(fortunately successful) attempt was the repacking of the application and its
following re-installation.

The flow of this idea is pretty simple. Firstly, it should find the requested
apk file of the installed package. The second stage is analyzing the
classes.dex file and generating required stub methods. If we want to forbid
TelephonyManager.getDeviceId that gets the IMEI of the phone we need to
generate the static method with the same return parameter, for this example it
should return java.lang.String, it’s not really necessary to handle function
parameters in general if the finite aim is to forbid calls.

The proof-of-concept code can be found at https://github.com/l4l/bs-thesis.
The code architectural structure is the simplest possible. The ApkLoader is
the main package that is able to patch, repack and sign the packages. Bytecode
patching is performed via MethodBuffer class. This class works with the given
buffer of dex file and performs patching method calls.

Obviously this work is far from ideal, for example simple obfuscation
techniques don’t allow to perform such kind of modifications.

###  4 Implementation dependencies

The Android platform has a nice tool for merging bunch of class files to the
dex file. Because it also has an implementation of bytecode generation that
was enough for implementing the patching and repacking. The bytecode
generation example of stub class and empty method is provided in chapter 7.

The other additional library is zipsigner, so it is possible to perform the
signing.

##  Chapter 4 Related Work

The area of the research was pretty wide so it includes the many areas of the
topic. Beginning with the basic communication analysis vulnerabilities [8] and
ending with enforcement security via kernel modification [12][4].

The other way is a dynamic approach that is presented in Aurasium paper [18].
They propose enforcing policies via system calls hooking. Their work is based
on the insertion of the arbitrary native library to the APK file so the
framework is able to enforce the policies. The enforcement is based on the
rewriting the main Application class.

Similar proposal was in the FireDroid papaer [15]. Their work was some kind of
firewall between the applications and the system calls that works over the
ptrace() system call. The further job is done by the monitor that attaches to
apps and checks the policy statements.

Also there is a work that combines both statical and dynamic analysis methods
[7]. It also acts as a monitor. But firstly it performs the static analysis
and constructs Permission Event Graph, based on which all the work is done.

The other approach is an enforcement of the system rather than the
applications. Some of those techniques were presented in [17]. This work
introduces SeApp application that performs an app instrumentation for tracking
the inter-component communications.

##  Chapter 5 Future Work

The possible future research for this topic covers many aspects. As long as
this paper proposes the proof-of-concept code there is no entire listing in
the app of potentially dangerous calls. This is not an easy task because
although the Android project is open-sourced, a lot of API didn’t documented
[3]

Beside that the additional feature for this method will be improving the speed
of patching. Because the patching is based on merging 2 dex files it can take
some time for this process. Therefore a ways for improving this method
possibly exist.

Also the newer version of the DVM allow to use multidex format, so that the
code could be placed in multiple classes.dex files.

Because the most recent version of the Android prefers to use ART instead of
DVM the continuations of the work is the performing patching of the native
libraries.

## References

  * [1] Requesting permissions at run time.  http://web.archive.org/web/20170307123456/https://developer.android.com/training/permissions/requesting.html, 2017\.  Accessed: 2017-03-07.
  * [2] Requesting permissions at run time.  http://web.archive.org/web/20170326192848/https://developer.android.com/about/dashboards/index.html, 2017\.  Accessed: 2017-03-26.
  * [3] Kathy Wain Yee Au, Yi Fan Zhou, Zhen Huang, and David Lie.  Pscout: analyzing the android permission specification.  In Proceedings of the 2012 ACM conference on Computer and communications security, pages 217–228. ACM, 2012.
  * [4] Anton Baláž, Branislav Madoš, Michal Ambróz, et al.  Android access control extension.  Acta Informatica Pragensia, 4(3):310–317, 2015.
  * [5] Guillaume Benats, Arosha Bandara, Yijun Yu, Jean-Noël Colin, and Bashar Nuseibeh.  Primandroid: privacy policy modelling and analysis for android applications.  In Policies for Distributed Systems and Networks (POLICY), 2011 IEEE International Symposium on, pages 129–132. IEEE, 2011.
  * [6] John Callaham.  Google says there are now 1.4 billion active android devices worldwide.  http://web.archive.org/web/20170408232334/http://www.androidcentral.com/google-says-there-are-now-14-billion-active-android-devices-worldwide.
  * [7] Kevin Zhijie Chen, Noah M Johnson, Vijay D’Silva, Shuaifu Dai, Kyle MacNamara, Thomas R Magrino, Edward XueJun Wu, Martin Rinard, and Dawn Xiaodong Song.  Contextual policy enforcement in android applications with permission event graphs.  In NDSS, page 234, 2013.
  * [8] Erika Chin, Adrienne Porter Felt, Kate Greenwood, and David Wagner.  Analyzing inter-application communication in android.  In Proceedings of the 9th international conference on Mobile systems, applications, and services, pages 239–252. ACM, 2011.
  * [9] David Ehringer.  The dalvik virtual machine architecture.  Techn. report (March 2010), 4:8, 2010.
  * [10] William Enck, Peter Gilbert, Seungyeop Han, Vasant Tendulkar, Byung-Gon Chun, Landon P Cox, Jaeyeon Jung, Patrick McDaniel, and Anmol N Sheth.  Taintdroid: an information-flow tracking system for realtime privacy monitoring on smartphones.  ACM Transactions on Computer Systems (TOCS), 32(2):5, 2014.
  * [11] Parvez Faruki, Ammar Bharmal, Vijay Laxmi, Vijay Ganmoor, Manoj Singh Gaur, Mauro Conti, and Muttukrishnan Rajarajan.  Android security: a survey of issues, malware penetration, and defenses.  IEEE communications surveys & tutorials, 17(2):998–1022, 2015\.
  * [12] Mohammad Nauman, Sohail Khan, and Xinwen Zhang.  Apex: extending android permission model and enforcement with user-defined runtime constraints.  In Proceedings of the 5th ACM symposium on information, computer and communications security, pages 328–332. ACM, 2010.
  * [13] Android Open Source Project.  Application fundamentals.  https://developer.android.com/guide/components/fundamentals.html.
  * [14] Android Open Source Project.  Permission.  https://developer.android.com/guide/topics/manifest/permission-element.html#plevel.
  * [15] Giovanni Russello, Arturo Blas Jimenez, Habib Naderi, and Wannes van der Mark.  Firedroid: Hardening security in almost-stock android.  In Proceedings of the 29th Annual Computer Security Applications Conference, pages 319–328. ACM, 2013.
  * [16] Rocky Slavin, Xiaoyin Wang, Mitra Bokaei Hosseini, James Hester, Ram Krishnan, Jaspreet Bhatia, Travis D Breaux, and Jianwei Niu.  Toward a framework for detecting privacy policy violations in android application code.  In Proceedings of the 38th International Conference on Software Engineering, pages 25–36. ACM, 2016.
  * [17] Daibin Wang, Hai Jin, Deqing Zou, Peng Xu, Tianqing Zhu, and Gang Chen.  Taming transitive permission attack via bytecode rewriting on android application.  Security and Communication Networks, 2016.
  * [18] Rubin Xu, Hassen Saïdi, and Ross J Anderson.  Aurasium: practical policy enforcement for android applications.  In USENIX Security Symposium, volume 2012, 2012.

##  Chapter 6 Methods signatures of c

⬇

// type pool of internal-represented strings

List<String> tnames = dexFile.typeNames();

// type indexes

List<Integer> types = dexFile.typeIds();

// strings table

List<String> strings = dexFile.strings();

// field indexes

List<FieldId> fields = dexFile.fieldIds();

// prototypes indexes

List<ProtoId> protos = dexFile.protoIds();

// method indexes

List<MethodId> methods = dexFile.methodIds();

for (Method m : c.methods()) {

int i = m.getMethodIndex();

MethodId id = methods.get(i);

String n = strings.get(id.getNameIndex());

ProtoId proto = protos.get(id.getProtoIndex());

String ret = tnames.get(proto.getReturnTypeIndex());

short types = dexFile.readTypeList(

proto.getParametersOffset()).getTypes());

print(ret + ”␣” + n + ”␣(”);

for (short t: types)

print(tnames.get(t) + ”␣”);

print(”)␣”);

}

##  Chapter 7 Stub geneneration based on dex

⬇

public <T> void generateMethod(String name, Type<T> ret, Type…params) {

Type<?> stub = Type.get(”Lru/innopolis/Stub;”);

MethodId methodId = stub.getMethod(ret, name, params);

Code code = generator.declare(methodId,

Modifier.STATIC | Modifier.PUBLIC);

if (ret.equals(Type.VOID)) {

code.returnVoid();

} else {

MethodId<T, Void> ctr = ret.getConstructor();

Local<T> r = code.newLocal(ret);

code.newInstance(r, ctr);

code.returnValue(r);

}

}


11institutetext: Department of Physical Sciences,
Indian Institute of Science Education and Research Kolkata,
Mohanpur - 741 246, WB, India

# Comments on existence of Z(2) kink soliton configuration in N=2 scalar field
theory

Susobhan Mandal<EMAIL_ADDRESS>
###### Abstract

In this article, we look at the existence of kink soliton configurations in
N=2 scalar fields models analytically. Although solution of such classical
configuration was given earlier in literature but such study was done rather
numerically. Here, we first present the result which was known earlier then we
will try to convince readers existence of such classical configuration can be
proven using some simple analytical techniques without knowing detailed
solution. Such study will be helpful to generalize the problem for higher
number of field variables where one might not be able to find an analytic
solution which is often the case. Then we present a new solution which is
discontinuous in nature for one field variable and which has its own
importance in terms of symmetry of the field theory, topology and contribution
to energy of configuration.

##  1 Introduction

Solution of $\mathbb{Z}(2)$ kink soliton configuration is well known in
literature. It was found in different physical situations like
kimball1980kinks , remoissenet1978cooperative , chamon2000solitons ,
semenoff2008domain . And they are important because they are finite energy
classical configurations which one can’t find perturbatively from trivial
vacuum configuration. They have other properties which are important in their
own rights.

From Derrick’s theorem it is well established that in presence of potential
term in action soliton configurations can only be existed in $1+1$ dimensional
field theories. But it does not say about or put any restriction on the number
of scalar fields in the system which can lead to existence of soliton
configurations even in $1+1$ dimension. For $\mathcal{N}=1$ scalar field
theories it is much trivial compared to $\mathcal{N}>1$ scalar field theories
because of integrability condition shown in vachaspati2006kinks ,
Rajaraman:1982is  and in other literatures.

Solution of $\mathbb{Z}(2)$ kink soliton configuration was given in
alonso2018kink  using something known as Euler coordinates for Montonen-
Sarker-Trullinger-Bishop model also known as MSTB model. Solution that was
given in the model is exact but the way they find the solution can’t be
generalized to $\mathcal{N}>2$ scalar field theories in $1+1$ dimension. But
we want to find a way of looking at the problem such that we can find the
answer to existence of soliton configuration even we can’t find exact solution
analytically because such approach can easily be generalized to
$\mathcal{N}>2$ scalar field theories.

In this article, we study $\mathcal{N}=2$ scalar field theory in two models in
which first is the generalized version of the potential used in $\phi^{4}$
kink configuration and second one is MSTB model. Through studying MSTB model
we can show the existing solution matches all the properties that the exact
soliton solutions have in $1+1$ dimension.

##  2 $\mathcal{N}=2$ scalar field theory with $SO(2)$ action invariant theory

###  2.1 Introduction to model

Here we study a field theory which constituents are two scalar field variables
and it is invariant under $SO(2)$ group action in internal space. There are
many such possibilities but we also want to generalize known $\phi^{4}$ kink
configuration. So, we choose a system described by following action

$S=\int
d^{4}x\Big{[}\frac{1}{2}\sum_{a=1}^{2}\partial_{\mu}\phi_{a}\partial^{\mu}\phi_{a}-U(\\{\phi_{a}\\})\Big{]}$
(1)

where $U(\\{\phi_{a}\\})$ is chosen to be
$U(\phi_{1},\phi_{2})=\frac{\lambda}{4}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}$.

Euler-Lagrange equations of motion are following

$\begin{split}\partial_{\mu}\partial^{\mu}\phi_{1}&=-\lambda\phi_{1}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\partial_{\mu}\partial^{\mu}\phi_{2}&=-\lambda\phi_{2}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\end{split}$
(2)

###  2.2 Analysis of Static configuration

Since we are interested in static configurations initially(because we can find
dynamical solution by boosting it) we can write above equations as follows

$\begin{split}\partial_{x}^{2}\phi_{1}&=\lambda\phi_{1}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\partial_{x}^{2}\phi_{2}&=\lambda\phi_{2}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\end{split}$
(3)

Note that this implies following

$\begin{split}\phi_{2}\partial_{x}^{2}\phi_{1}&-\phi_{1}\partial_{x}^{2}\phi_{2}=0\\\
\implies\partial_{x}(\phi_{2}\partial_{x}\phi_{1}&-\phi_{1}\partial_{x}\phi_{2})=0\\\
\implies\phi_{2}\partial_{x}\phi_{1}&-\phi_{1}\partial_{x}\phi_{2}=\text{const}\end{split}$
(4)

Here, one need to remember that solitons are necessarily finite energy
configurations, therefore in static situation following quantity should be
finite

$\begin{split}E[\phi_{1},\phi_{2}]&=\int_{-\infty}^{\infty}dx\Big{[}\frac{1}{2}\sum_{a=1}^{2}(\partial_{x}\phi_{a})^{2}+U(\phi_{1},\phi_{2})\Big{]}\\\
&=\int_{-\infty}^{\infty}dx\Big{[}\frac{1}{2}\sum_{a=1}^{2}(\partial_{x}\phi_{a})^{2}+\frac{\lambda}{4}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}\Big{]}<\infty\end{split}$
(5)

Above restriction necessary means that

$\begin{split}\partial_{x}\phi_{a}|_{x=\pm\infty}&=0\\\
(\phi_{1}^{2}+\phi_{2}^{2})|_{x=\pm\infty}&=\eta^{2}\end{split}$ (6)

Therefore,

$(\phi_{2}\partial_{x}\phi_{1}-\phi_{1}\partial_{x}\phi_{2})|_{x=\pm\infty}=0$
(7)

and since
$\phi_{2}\partial_{x}\phi_{1}-\phi_{1}\partial_{x}\phi_{2}=\text{const}$ which
means

$\phi_{2}(x)\partial_{x}\phi_{1}(x)=\phi_{1}(x)\partial_{x}\phi_{2}(x)$ (8)

Therefore, two field variables are related in following way

$\phi_{1}(x)=\mathcal{C}\phi_{2}(x)$ (9)

where $\mathcal{C}$ is constant. From eq.(2.3) we can write following

$\begin{split}\partial_{x}\phi_{1}\partial_{x}^{2}\phi_{1}+\partial_{x}\phi_{2}\partial_{x}^{2}\phi_{2}&=\lambda(\phi_{1}\partial_{x}\phi_{1}+\phi_{2}\partial_{x}\phi_{2})(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\implies\frac{d}{dx}\Big{[}\frac{1}{2}(\partial_{x}\phi_{1})^{2}+\frac{1}{2}(\partial_{x}\phi_{2})^{2}&-\frac{\lambda}{4}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}\Big{]}=0\end{split}$
(10)

Now using eq.(2.6) one can find that

$\frac{1}{2}(\partial_{x}\phi_{1})^{2}+\frac{1}{2}(\partial_{x}\phi_{2})^{2}=\frac{\lambda}{4}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}$
(11)

Note that

$\begin{split}\frac{\partial}{\partial
x}\Big{[}\phi_{1}\partial_{x}\phi_{1}&+\phi_{2}\partial_{x}\phi_{2}\Big{]}\\\
=(\partial_{x}\phi_{1})^{2}+(\partial_{x}\phi_{2})^{2}&+\phi_{1}\partial_{x}^{2}\phi_{1}+\phi_{2}\partial_{x}^{2}\phi_{2}\\\
=\frac{\lambda}{2}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}&+\lambda(\phi_{1}^{2}+\phi_{2}^{2})(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\implies\partial_{x}^{2}(\phi_{1}^{2}+\phi_{2}^{2})&=\lambda(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})(3\phi_{1}^{2}+3\phi_{2}^{2}-\eta^{2})\end{split}$
(12)

Now we define a field variable $\chi(x)=\phi_{1}^{2}(x)+\phi_{2}^{2}(x)$. Then
we can write above equation as follows

$\begin{split}\partial_{x}^{2}\chi&=\lambda(\chi-\eta^{2})(3\chi-\eta^{2})\\\
&=V^{\prime}(\chi)\\\ \implies
V(\chi)&=\lambda\int(\chi-\eta^{2})(3\chi-\eta^{2})d\chi\\\
&=\lambda(\chi^{3}-2\eta^{2}\chi^{2}+\eta^{4}\chi)\end{split}$ (13)

Therefore, we are able to write differential equation in single auxiliary
field variable. And the solution of the above differential equation is

$\begin{split}(x-x_{0})&=\pm\frac{1}{\sqrt{2\lambda}}\int_{0}^{\chi}\frac{d\tilde{\chi}}{\sqrt{\tilde{\chi}^{2}-2\eta^{2}\tilde{\chi}^{2}+\eta^{4}\tilde{\chi}}}\\\
&=\pm\frac{1}{\sqrt{2\lambda}}\int_{0}^{\chi}\frac{d\tilde{\chi}}{\sqrt{\tilde{\chi}}(\tilde{\chi}-\eta^{2})}\end{split}$
(14)

Now if we define $U^{2}=\tilde{\chi}$, then we will find

$\begin{split}(x-x_{0})&=\pm\sqrt{\frac{2}{\lambda}}\int_{0}^{\sqrt{\chi}}\frac{dU}{U^{2}-\eta^{2}}\\\
&=\pm\sqrt{\frac{2}{\lambda}}\frac{1}{\eta}\tanh^{-1}\left(\frac{\sqrt{\chi}}{\eta}\right)\\\
\implies\phi_{1}^{2}+\phi_{2}^{2}&=(\eta\tanh\sigma(x-x_{0}))^{2},\
\sigma=\eta\sqrt{\frac{\lambda}{2}}\end{split}$ (15)

Then according to eq.(2.9) we can write

$\begin{split}\phi_{1}(x)&=\sin\theta\Phi(x)\\\
\phi_{2}(x)&=\cos\theta\Phi(x)\\\ \implies\mathcal{C}&=\tan\theta\\\
\Phi(x)&=\eta\tanh\sigma(x-x_{0})\end{split}$ (16)

where $\theta$ is a constant.

Asymptotically vacuum manifold is a circle, $\theta$ defines the angle that
the path makes with x-axis on $\phi_{1}-\phi_{2}$ plane going from
$x=-\infty\rightarrow x=\infty$. All of such paths are equivalent because they
can be found out through rotation once we know one path. It is where
invariance under $SO(2)$ group action plays an important role. These kink
configuration only connects two opposite points located on the asymptotic
vacuum manifold through a straight line passing through origin.

Figure 1: Schematic diagram for showing how does vacuum manifold look like in
asymptoty

###  2.3 Analysis in different parametrization

In this section we choose different parametrization of field variables to
analysis existence of soliton configuration.

In this case we define

$\phi_{1}(x)=\rho(x)\cos\theta(x),\ \phi_{1}(x)=\rho(x)\sin\theta(x)$ (18)

In terms of these field variables we can rewrite the action in eq.(2.1) as
follows

$S=\int
dx\Big{[}\frac{1}{2}\partial_{\mu}\rho\partial^{\mu}\rho+\frac{1}{2}\rho^{2}\partial_{\mu}\theta\partial^{\mu}\theta-\frac{\lambda}{4}(\rho^{2}-\eta^{2})^{2}\Big{]}$
(19)

Note that equations of motion are

$\begin{split}\partial_{\mu}\partial^{\mu}\rho&=\rho(\partial\theta)^{2}-\frac{\partial}{\partial\rho}U(\rho)\\\
\partial_{\mu}(\rho^{2}\partial^{\mu}\theta)&=0\\\
U(\rho)&=\frac{\lambda}{4}(\rho^{2}-\eta^{2})^{2}\end{split}$ (20)

And in static configuration these equations become

$\begin{split}\partial_{x}^{2}\rho&=\frac{\partial}{\partial\rho}U(\rho)-\rho(\partial_{x}\theta)^{2}\\\
\rho^{2}\partial_{x}^{2}\theta&=0\end{split}$ (21)

Note that in terms of this parametrization we can write Energy of static
configuration is

$E[\rho,\theta]=\int_{-\infty}^{\infty}dx\Big{[}\frac{1}{2}(\partial_{x}\rho)^{2}+\frac{1}{2}\rho^{2}(\partial_{x}\theta)^{2}+U(\rho)\Big{]}$
(22)

Therefore, finite energy condition of soliton configuration implies

$\begin{split}\partial_{x}\rho|_{x=\pm\infty}=0,&\
\partial_{x}\theta|_{x=\pm\infty}=0\\\
\rho^{2}(x)|_{x=\pm\infty}&=\eta^{2}\end{split}$ (23)

Second equation of Euler-Lagrange equations with above condition implies
$\partial_{x}\theta(x)=0$ which lead to following Euler-Lagrange equation

$\partial_{x}^{2}\rho=\frac{\partial}{\partial\rho}U(\rho)$ (24)

which exactly gives the $\mathbb{Z}(2)$-kink soliton solution but in $\rho(x)$
configuration which is $\rho(x)=\sqrt{\phi_{1}^{2}(x)+\phi_{2}^{2}(x)}$.

And note that $\theta(x)=\text{const}$ throughout the soliton configuration
which we found easily in this case compared to previous case.

##  3 MSTB model

###  3.1 Introduction to the model

MSTB model which is described in izquierdo2008generalized  can be described by
adding a quadratic term in $\phi_{2}$ field in eq.(2.1) which breaks the
$SO(2)$ group action invariance. And remaining symmetry that the theory has is
the discrete $\mathbb{Z}(2)$ symmetry.

The resultant action looks something like this

$\begin{split}S[\phi_{1},\phi_{2}]&=\int
d^{4}x\Big{[}\frac{1}{2}\sum_{a=1}^{2}\partial_{\mu}\phi_{a}\partial^{\mu}\phi_{a}-U(\\{\phi_{a}\\})\Big{]}\\\
U(\\{\phi_{a}\\})&=\frac{\lambda}{4}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}+\frac{1}{2}M^{2}\phi_{2}^{2}\end{split}$
(25)

And the Euler-Lagrange equations of motion look following

$\begin{split}\partial_{\mu}\partial^{\mu}\phi_{1}&=-\lambda\phi_{1}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\partial_{\mu}\partial^{\mu}\phi_{2}&=-\lambda\phi_{2}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2}+\frac{M^{2}}{\lambda})\end{split}$
(26)

###  3.2 Analysis of static-configuration

Since we are interested in static-configuration we can write Euler-Lagrange
equations as follows

$\begin{split}\partial_{x}^{2}\phi_{1}&=\lambda\phi_{1}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\partial_{x}^{2}\phi_{2}&=\lambda\phi_{2}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2}+\frac{M^{2}}{\lambda})\end{split}$
(27)

which leads to following equation

$\partial_{x}\Big{[}\phi_{2}\partial_{x}\phi_{1}-\phi_{1}\partial_{x}\phi_{2}\Big{]}=-M^{2}\phi_{1}\phi_{2}\neq
0$ (28)

which is the non-homogeneous version of eq.(2.4).

Similarly in analogous way as we did in eq.(2.10) one can show that

$\begin{split}\partial_{x}\Big{[}\frac{1}{2}(\partial_{x}\phi_{1})^{2}+\frac{1}{2}(\partial_{x}\phi_{2})^{2}\Big{]}&=\partial_{x}U(\phi_{1},\phi_{2})\\\
\implies\frac{1}{2}(\partial_{x}\phi_{1})^{2}+\frac{1}{2}(\partial_{x}\phi_{2})^{2}&-U(\phi_{1},\phi_{2})=\mathcal{C}\end{split}$
(29)

Let’s first study the vacuum manifold which can be analyzed by writing down
the following conditions

$\begin{split}\frac{\partial
U}{\partial\phi_{1}}&=\lambda\phi_{1}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})=0\\\
\implies\phi_{1}=0,&\ \text{or}\ \phi_{1}^{2}+\phi_{2}^{2}=\eta^{2}\\\
\frac{\partial^{2}U}{\partial\phi_{1}^{2}}&=\lambda(3\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})\\\
\implies\frac{\partial^{2}U}{\partial\phi_{1}^{2}}\Big{|}_{\phi_{1}=0}&=\lambda(\phi_{2}^{2}-\eta^{2})\geq\text{or}\leq
0\\\
\frac{\partial^{2}U}{\partial\phi_{1}^{2}}\Big{|}_{\phi_{1}^{2}+\phi_{2}^{2}=\eta^{2}}&=2\lambda\phi_{1}^{2}\geq
0\end{split}$ (30)

Similarly

$\begin{split}\frac{\partial
U}{\partial\phi_{2}}&=\lambda\phi_{2}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2}+\frac{M^{2}}{\lambda})=0\\\
\implies\phi_{1}^{2}+\phi_{2}^{2}&=\eta^{2},\ \phi_{2}=0\\\
\implies\phi_{1}=\pm\eta,&\ \phi_{2}=0\end{split}$ (31)

is the vacuum manifold because

$\begin{split}\frac{\partial^{2}U}{\partial\phi_{2}^{2}}&=\lambda(\phi_{1}^{2}+3\phi_{2}^{2}-\eta^{2}+\frac{M^{2}}{\lambda})\\\
\implies\frac{\partial^{2}U}{\partial\phi_{2}^{2}}\Big{|}_{\phi_{1}=\pm\eta,\phi_{2}=0}&=2\lambda(\phi_{2}^{2}+\frac{M^{2}}{\lambda})>0\end{split}$
(32)

Therefore, we have proven that $(\phi_{1}=\eta,\phi_{2}=0),\
(\phi_{1}=-\eta,\phi_{2}=0)$ are the only two points on the circle of radius
$\eta$ in $\phi_{1}-\phi_{2}$ plane which is the possible vacuum manifold
which is set of 2 discrete points.

Demanding finite energy configuration guarantees that

$\begin{split}\partial_{x}\phi_{1}|_{x=\pm\infty}=0&=\partial_{x}\phi_{2}|_{x=\pm\infty}\\\
\phi_{1}(x=\pm\infty)=\pm\eta,&\ \phi_{2}(x=\pm\infty)=0\end{split}$ (33)

If we use the above condition and integrate eq.(3.5) from
$-\infty\rightarrow\infty$, we will find

$\mathcal{C}=0\implies\frac{1}{2}(\partial_{x}\phi_{1})^{2}+\frac{1}{2}(\partial_{x}\phi_{2})^{2}=U(\phi_{1},\phi_{2})$
(34)

and eq.(3.4) leads to

$\int_{-\infty}^{\infty}\phi_{1}(x)\phi_{2}(x)dx=0$ (35)

Now observe following results

$\begin{split}\partial_{x}^{2}(\phi_{1}^{2}+\phi_{2}^{2})&=2[(\partial_{x}\phi_{1})^{2}+(\partial_{x}\phi_{2})^{2}]+2[\phi_{1}\partial_{x}^{2}\phi_{1}+\phi_{2}\partial_{x}^{2}\phi_{2}]\\\
&=2[(\partial_{x}\phi_{1})^{2}+(\partial_{x}\phi_{2})^{2}]+4\lambda(\phi_{1}^{2}+\phi_{2}^{2})(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})+2M^{2}\phi_{2}^{2}\\\
\implies\partial_{x}^{2}(\phi_{1}^{2}+\phi_{2}^{2})|_{x=\pm\infty}&=0,\implies\partial_{x}^{2}\phi_{1}(x)|_{x=\pm\infty}=0\\\
\partial_{x}^{3}(\phi_{1}^{2}+\phi_{2}^{2})&=2(3\partial_{x}\phi_{1}\partial_{x}^{2}\phi_{1}+\phi_{1}\partial_{x}^{3}\phi_{1}+3\partial_{x}\phi_{2}\partial_{x}^{2}\phi_{2}+\phi_{2}\partial_{x}^{3}\phi_{2})\\\
\implies\partial_{x}^{3}(\phi_{1}^{2}+\phi_{2}^{2})|_{x=\pm\infty}&=2\phi_{1}(\pm\infty)\partial_{x}^{3}\phi_{1}|_{x=\pm\infty}\\\
\partial_{x}^{3}\phi_{1}|_{x=\pm\infty}&=\lambda\partial_{x}\phi_{1}|_{x=\pm\infty}(\phi_{1}^{2})+\phi_{2}^{2}-\eta^{2})|_{x=\pm\infty}\\\
&+2\lambda\phi_{1}(x=\pm\infty)(\phi_{1}\partial_{x}\phi_{1}+\phi_{2}\partial_{x}\phi_{2})|_{x=\pm\infty}=0\\\
\implies\partial_{x}^{3}\phi_{1}|_{x=\pm\infty}=0&\implies\partial_{x}^{3}(\phi_{1}^{2}+\phi_{2}^{2})|_{x=\pm\infty}=0\\\
\partial_{x}^{4}(\phi_{1}^{2}+\phi_{2}^{2})&=6(\partial_{x}^{2}\phi_{1})^{2}+8\partial_{x}\phi_{1}\partial_{x}^{3}\phi_{1}+2\phi_{1}\partial_{x}^{4}\phi_{1}\\\
&+6(\partial_{x}^{2}\phi_{2})^{2}+8\partial_{x}\phi_{2}\partial_{x}^{3}\phi_{2}+2\phi_{2}\partial_{x}^{4}\phi_{2}\\\
\implies\partial_{x}^{4}(\phi_{1}^{2}+\phi_{2}^{2})|_{x=\pm\infty}&=2\phi_{1}(x=\pm\infty)\partial_{x}^{4}\phi_{1}|_{x=\pm\infty}+6(\partial_{x}^{2}\phi_{2})^{2}|_{x=\pm\infty}\\\
\partial_{x}^{2}\phi_{2}|_{x=\pm\infty}&=\lambda\phi_{2}(x=\pm\infty)(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})|_{x=\pm\infty}=0\\\
\partial_{x}^{4}\phi_{1}&=\lambda\Big{[}\partial_{x}^{2}\phi_{1}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})+2\partial_{x}\phi_{1}(\phi_{1}\partial_{x}\phi_{1}+\phi_{2}\partial_{x}\phi_{2})\\\
&+2\partial_{x}\phi_{1}(\phi_{1}\partial_{x}\phi_{1}+\phi_{2}\partial_{x}\phi_{2})+2\phi_{1}((\partial_{x}\phi_{1})^{2}+\phi_{1}\partial_{x}^{2}\phi_{1}\\\
&+(\partial_{x}\phi_{2})^{2}+\phi_{2}\partial_{x}\phi_{2})\Big{]}\\\
\implies\partial_{x}^{4}\phi_{1}|_{x=\pm\infty}&=0\end{split}$ (36)

This way one can show that there must be a finite order $n$ upto which

$\partial_{x}^{n}(\phi_{1}^{2}+\phi_{2}^{2})|_{x=\pm\infty}=0$ (37)

which shows $\phi_{1}^{2}+\phi_{2}^{2}$ near $x\rightarrow\pm\infty$ becomes
$\eta^{2}$ with flatness. And $n$ can’t be infinite because then
$\phi_{1}^{2}+\phi_{2}^{2}=\eta^{2}$ which will be a trivial case then.

###  3.3 Analysis using different field parametrization

If we now use the similar parametrization as we used earlier then we find
following Lagrangian density

$\mathcal{L}=\frac{1}{2}(\partial\rho)^{2}+\frac{1}{2}\rho^{2}(\partial\theta)^{2}-\frac{\lambda}{4}(\rho^{2}-\eta^{2})^{2}-\frac{M^{2}}{2}\rho^{2}\sin^{2}\theta$
(38)

Energy of static soliton configuration would be following

$E=\int_{-\infty}^{\infty}dx\Big{[}\frac{1}{2}(\partial_{x}\rho)^{2}+\frac{1}{2}(\rho\partial_{x}\theta)^{2}+\frac{\lambda}{4}(\rho^{2}-\eta^{2})^{2}+\frac{M^{2}}{2}\rho^{2}\sin^{2}\theta\Big{]}$
(39)

And finite energy configuration means

$\begin{split}E<\infty&\implies\partial_{x}\rho|_{x=\pm\infty}=0,\
\partial_{x}\theta|_{x=\pm\infty}=0\\\ \rho(x=\pm\infty)=\eta,&\
\theta(x=\pm\infty)=m\pi\end{split}$ (40)

where $m\in\mathbb{Z}$ is a topological number.

Static field equations are following

$\begin{split}\partial_{x}^{2}\rho&=\rho(\partial_{x}\theta)^{2}+\lambda\rho(\rho^{2}-\eta^{2})+M^{2}\rho\sin^{2}\theta\\\
\rho^{2}\partial_{x}^{2}\theta+2\rho\partial_{x}\rho\partial_{x}\theta&=\frac{M^{2}}{2}\rho^{2}\sin
2\theta\\\
\implies\frac{1}{2}\partial_{x}(\partial_{x}\rho)^{2}&=\partial_{x}(\frac{\rho^{2}}{2})(\partial_{x}\theta)^{2}+\partial_{x}\left(\frac{\lambda}{4}(\rho^{2}-\eta^{2})\right)+M^{2}\partial_{x}(\frac{\rho^{2}}{2})\sin^{2}\theta\\\
\frac{1}{2}\rho^{2}\partial_{x}(\partial_{x}\theta)^{2}&+2\rho\partial_{x}\rho(\partial_{x}\theta)^{2}=\frac{M^{2}}{2}\rho^{2}(\partial_{x}\sin^{2}\theta)\\\
\implies\partial_{x}\Big{[}\frac{1}{2}(\partial_{x}\rho)^{2}&+\frac{1}{2}\rho^{2}(\partial_{x}\theta)^{2}-\frac{\lambda}{4}(\rho^{2}-\eta^{2})^{2}-\frac{M^{2}}{2}\rho^{2}\sin^{2}\theta\Big{]}=0\end{split}$
(41)

If we put the asymptotic condition for vacuum manifold we will get

$\frac{1}{2}(\partial_{x}\rho)^{2}+\frac{1}{2}\rho^{2}(\partial_{x}\theta)^{2}=\frac{\lambda}{4}(\rho^{2}-\eta^{2})^{2}+\frac{M^{2}}{2}\rho^{2}\sin^{2}\theta$
(42)

Note that if $\rho(x)>\eta$ for all value of $x$, then

$\partial_{x}^{2}\rho=\rho(\partial_{x}\theta)^{2}+\lambda\rho(\rho^{2}-\eta^{2})+M^{2}\rho\sin^{2}\theta>0$
(43)

But since $\partial_{x}\rho|_{x=\pm\infty}=0$, $\partial_{x}\rho$ must have to
be increased then decreased or may follow reverse order.

But if $\rho(x)<\eta$ then

$\partial_{x}^{2}\rho=\rho(\partial_{x}\theta)^{2}+M^{2}\rho\sin^{2}\theta-\lambda\rho|(\rho^{2}-\eta^{2})|>0\
\text{or}\ <0$ (44)

which means that depending on the value of $x$, $\partial_{x}\rho$ can either
be increasing or decreasing, which shows $\rho(x)\leq\eta$ must be a condition
that the soliton configuration follows.

###  3.4 Exact soliton solutions

We start with first parametrization of field variables in which we first
provide the exact solutions exist in literature we know of.

First kind solution is in a way trivial solution which is following

$\phi_{1}(x)=\pm\eta\tanh\sigma(x-x_{0}),\ \phi_{2}(x)=0,\
\sigma=\eta\sqrt{\frac{\lambda}{2}}$ (45)

Second non-trivial solution is following

$\phi_{1}(x)=\pm\eta\tanh M(x-x_{0}),\
\phi_{2}(x)=\pm\lambda\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}M(x-x_{0})$
(46)

given in alonso2018kink . Note that solution of $\phi_{2}(x)$ is real provided
$|M|<\eta\sqrt{\lambda}$.

Energy of this configuration is also calculated in alonso2018kink  which is
$2\frac{M}{\lambda}(1-\frac{1}{3}M^{2})$ which shows that this configuration
can’t be perturbatively found because of $\frac{1}{\lambda}$ dependence. In
$M\rightarrow 0$ limit shows zero energy configuration which means
$M\rightarrow 0$ does not analytically maps to $\phi^{4}$-kink like solution.

In second parametrization we now propose a exact solution which is also a
soliton configuration given by

$\begin{split}\theta(x)&=\pi(\theta(-x+x_{0})\\\
\rho(x)&=\eta\tanh\sigma(x-x_{0})\end{split}$ (47)

which is a solution that does not depend on the parameter $M$.

Note that

$\begin{split}\partial_{x}\theta=-\pi&\delta(x-x_{0})\\\
\implies\sin\theta(x)&=0\\\
\implies\rho(x)(\partial_{x}\theta)^{2}&=0\end{split}$ (48)

Similarly $\partial_{x}^{2}\theta(x)=-\pi\delta^{\prime}(x-x_{0})$ which is
zero for $x\neq x_{0}$ and does not exist at $x=x_{0}$ because right-hand and
left-hand limit of the derivatives at $x=x_{0}$ are not equal. But since
$\partial_{x}^{2}\theta(x)$ multiplied with $\rho(x)$ which takes zero values
at $x=x_{0}$ it solves the problem of existence of limit at $x=x_{0}$ from the
field equations in eq.(3.17).

And energy density of such configuration is given by

$\mathcal{E}(\rho(x),\theta(x))=(\partial_{x}\rho(x))^{2}=(\eta\sigma)^{2}\operatorname{sech}^{4}\sigma(x-x_{0})$
(49)

which is a localized function in $x$ therefore energy of this configuration is
finite.

Note that in general we can take solution to be following for multiple
localized kinks and anti-kinks with 1 transition from $-\eta\rightarrow\eta$

$\theta(x)=m\pi\theta(x-x_{0})+(m+1)\pi\theta(-x+x_{0})\implies\partial_{x}\theta(x)=-\pi\delta(x-x_{0})$
(50)

which does not change previous statements. Here $m$ is the topological quantum
number which defines what is the initial turn number around origin
$(\phi_{1}=0,\phi_{2}=0)$.

Figure 2: Schematic diagram showing orbits in $\phi_{1}-\phi_{2}$ plane which
creates different number of loops

If we consider multi-kink configurations with even number of kinks and anti-
kinks then if $\rho(x)$ goes $\eta\rightarrow\eta$ asymptotically then
$\theta(x)=2m\pi\theta(-x+x_{0})+2n\pi\theta(x-x_{0})$ and if $\rho(x)$ goes
$-\eta\rightarrow-\eta$ asymptotically then
$\theta(x)=(2m+1)\pi\theta(-x+x_{0})+(2n+1)\pi\theta(x-x_{0})$ although these
$\rho(x)$s are not exact solutions of the field equation with these
$\theta(x)$ functions. It essentially means how many loop has been created
around $(\phi_{1}=0,\phi_{2}=0)$ to reach $x\rightarrow\infty$ from
$x\rightarrow-\infty$.

There is another thing we want to point out that the fact such discontinuous
solution of $\theta(x)$ does not contribute anything in total energy of the
configuration because of the fact that the action $S[\rho,\theta]$ in
eq.(3.14) apart from having $\mathbb{Z}(2)$ symmetry w.r.t $\rho(x)$ field
also has discrete translational symmetry $\theta(x)\rightarrow\theta(x)+n\pi$
in $\theta(x)$ variable. And because of this reason the force calculation
between two neighbouring kink, anti-kink configuration does not depend on the
configuration of above kind of $\theta(x)$ configurations. And the result will
exactly match with result we have derived in Mandal:2018pqo .

So as we can see different parametrization of field variables captures
different important informations which will eventually lead us to the
properties of the solution even not a exact solution.

##  4 Force calculation in multi-kink configuration

###  4.1 Force calculation in first Configuration

First configuration is shown below where we chose kinks and anti-kinks in
neighbouring position for both $\phi_{1},\phi_{2}$ field variables.

(52) Figure 3: right figure shows $\phi_{1}$ configuration and left figure
shows $\phi_{2}$ configuration

Like in vachaspati2006kinks  we will calculate the time derivative of stress-
energy tensor component $T^{0i}$

$\begin{split}T^{0i}&=-T_{0i}=-(\partial_{t}\Phi_{1}\partial_{x}\Phi_{1}+\partial_{t}\Phi_{2}\partial_{x}\Phi_{2})\\\
\implies\frac{dT^{0i}}{dt}&=-(\partial_{t}^{2}\Phi_{1}\partial_{x}\Phi_{1}+\partial_{t}\Phi_{1}\partial_{x}\partial_{t}\Phi_{1}\\\
&+\partial_{t}^{2}\Phi_{2}\partial_{x}\Phi_{2}+\partial_{t}\Phi_{2}\partial_{x}\partial_{t}\Phi_{2})\end{split}$
(53)

Now using the field equations we can write

$\frac{dT^{0i}}{dt}=-\partial_{x}\Big{[}\frac{1}{2}(\partial_{t}\Phi_{1})^{2}+\frac{1}{2}(\partial_{x}\Phi_{1})^{2}+\frac{1}{2}(\partial_{t}\Phi_{2})^{2}+\frac{1}{2}(\partial_{x}\Phi_{2})^{2}-U(\Phi_{1},\Phi_{2})\Big{]}$
(54)

which means rate of change of momentum is
$\frac{dP}{dt}=\frac{d}{dt}\int_{-a-R}^{-a+R}dxT^{0i}(x)$ where $R$ is the
width of localized kink configuration in left where as $a$ is the position of
the center of the kink. This leads to force that anti-kink put on kink is
given by following

$\begin{split}F&=-\frac{dP}{dt}=-\Big{[}\frac{1}{2}(\partial_{t}\Phi_{1})^{2}+\frac{1}{2}(\partial_{x}\Phi_{1})^{2}+\frac{1}{2}(\partial_{t}\Phi_{2})^{2}+\frac{1}{2}(\partial_{x}\Phi_{2})^{2}-U(\Phi_{1},\Phi_{2})\Big{]}_{-a-R}^{-a+R}\end{split}$
(55)

Since we are interested in static configuration at a particular instant of
time the time derivatives vanish and we will get

$F=-\Big{[}\frac{1}{2}(\partial_{x}\Phi_{1})^{2}+\frac{1}{2}(\partial_{x}\Phi_{2})^{2}-U(\Phi_{1},\Phi_{2})\Big{]}_{-a-R}^{-a+R}$
(56)

Now we put additive ansatz which is

$\begin{split}\Phi_{1}&\equiv\phi_{1}+\bar{\phi}_{1}-\eta\\\
\Phi_{2}&\equiv\phi_{2}+\bar{\phi}_{2}\end{split}$ (57)

Which means if we neglect the cross terms in spatial derivatives we will get

$\begin{split}F&=-\Big{[}\frac{1}{2}(\partial_{x}\phi_{1})^{2}+\frac{1}{2}(\partial_{x}\bar{\phi}_{1})^{2}+\frac{1}{2}(\partial_{x}\phi_{2})^{2}+\frac{1}{2}(\partial_{x}\bar{\phi}_{2})^{2}-U(\phi_{1}+\bar{\phi}_{1}-\eta,\phi_{2}+\bar{\phi}_{2})\Big{]}_{-a-R}^{-a+R}\\\
&=\Big{[}U(\phi_{1}+\bar{\phi}_{1}-\eta,\phi_{2}+\bar{\phi}_{2})-U(\phi_{1},\phi_{2})-U(\phi_{1},\phi_{2})-U(\bar{\phi}_{1},\bar{\phi}_{2})\Big{]}_{-a-R}^{-a+R}\end{split}$
(58)

Now we define following quantities

$\begin{split}\phi_{1}^{+}&=\phi_{1}(-a+R)=\eta\tanh\sigma R\\\
\phi_{1}^{-}&=\phi_{1}(-a-R)=-\eta\tanh\sigma R\\\
\bar{\phi}_{1}^{+}&=\bar{\phi}_{1}(-a+R)=\eta\tanh\sigma(2a-R)\\\
\bar{\phi}_{1}^{-}&=\bar{\phi}_{1}(-a-R)=\eta\tanh\sigma(2a+R)\\\
\phi_{2}^{+}&=\phi_{2}(-a+R)=\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma
R\\\
\phi_{2}^{-}&=\phi_{2}(-a-R)=\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma
R\\\
\bar{\phi}_{2}^{+}&=\bar{\phi}_{2}(-a+R)=-\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma(2a-R)\\\
\bar{\phi}_{2}^{-}&=\bar{\phi}_{2}(-a-R)=\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma(2a+R)\end{split}$
(59)

With this information in hand we can write

$\begin{split}F&=\Big{[}U(\phi_{1}^{+}+\bar{\phi}_{1}^{+}-\eta,\phi_{2}^{+}+\bar{\phi}_{2}^{+})-U(\phi_{1}^{-}+\bar{\phi}_{1}^{-}-\eta,\phi_{2}^{-}+\bar{\phi}_{2}^{-})-U(\phi_{1}^{+},\phi_{2}^{+})+U(\phi_{1}^{-},\phi_{2}^{-})\\\
&-U(\bar{\phi}_{1}^{+},\bar{\phi}_{2}^{+})+U(\bar{\phi}_{1}^{-},\bar{\phi}_{2}^{-})\Big{]}\\\
&=\Big{[}U(\eta+\Delta\phi_{1}^{+}+\Delta\bar{\phi}_{1}^{+},\Delta\phi_{2}^{+}+\Delta\bar{\phi}_{2}^{+})-U(-\eta+\Delta\phi_{1}^{-}+\Delta\bar{\phi}_{1}^{-},\Delta\phi_{2}+\Delta\bar{\phi}_{2}^{-})-U(\eta+\Delta\phi_{1}^{+},\Delta\phi_{2}^{+})\\\
&+U(\eta+\Delta\phi_{1}^{-},\Delta\phi_{2}^{-})-U(\eta+\Delta\bar{\phi}_{1}^{+},\Delta\bar{\phi}_{2}^{+})+U(\eta+\Delta\bar{\phi}_{1}^{-},\Delta\bar{\phi}_{2}^{-})\Big{]}\\\
&=\Bigg{[}\frac{U^{(2,0)}}{2}\Big{[}(\Delta\phi_{1}^{+}+\Delta\bar{\phi}_{1}^{+})^{2}-(\Delta\phi_{1}^{-}+\Delta\bar{\phi}_{1}^{-})^{2}\Big{]}+\frac{U^{(0,2)}}{2}\Big{[}(\Delta\phi_{2}^{+}+\Delta\bar{\phi}_{2}^{+})^{2}-(\Delta\phi_{2}^{-}+\Delta\bar{\phi}_{2}^{-})^{2}\Big{]}\\\
&+\frac{U^{(1,1)}}{2}\Big{[}(\Delta\phi_{1}^{+}+\Delta\bar{\phi}_{1}^{+})(\Delta\phi_{2}^{+}+\Delta\bar{\phi}_{2}^{+})-(\Delta\phi_{1}^{-}+\Delta\bar{\phi}_{1}^{-})(\Delta\phi_{2}^{-}+\Delta\bar{\phi}_{2}^{-})\Big{]}\\\
&+\frac{U^{(2,0)}}{2}\Big{[}-(\Delta\phi_{1}^{+})^{2}+(\Delta\phi_{1}^{-})^{2}-(\Delta\bar{\phi}_{1}^{+})^{2}+(\Delta\bar{\phi}_{1}^{-})^{2}\Big{]}\\\
&+\frac{U^{(0,2)}}{2}\Big{[}-(\Delta\phi_{2}^{+})^{2}+(\Delta\phi_{2}^{-})^{2}-(\Delta\bar{\phi}_{2}^{+})^{2}+(\Delta\bar{\phi}_{2}^{-})^{2}\Big{]}\\\
&+\frac{U^{(1,1)}}{2}\Big{[}\Delta\phi_{1}^{+}\Delta\phi_{2}^{+}+\Delta\phi_{1}^{-}\Delta\phi_{2}^{-}-\Delta\bar{\phi}_{1}^{+}\Delta\bar{\phi}_{2}^{+}+\Delta\bar{\phi}_{1}^{-}\Delta\bar{\phi}_{2}^{-}\Big{]}\Bigg{]}\end{split}$
(60)

After algebraic cancellation one would following expression for force

$\begin{split}F&=U^{(2,0)}(\Delta\phi_{1}^{+}\Delta\bar{\phi}_{1}^{+}-\Delta\phi_{1}^{-}\Delta\bar{\phi}_{1}^{-})+U^{(0,2)}(\Delta\phi_{2}^{+}\Delta\bar{\phi}_{2}^{+}-\Delta\phi_{2}^{-}\Delta\bar{\phi}_{2}^{-})\\\
&+\frac{U^{(1,1)}}{2}(\Delta\phi_{1}^{+}\Delta\bar{\phi}_{2}^{+}+\Delta\phi_{2}^{+}\Delta\bar{\phi}_{1}^{+}-\Delta\phi_{1}^{-}\Delta\bar{\phi}_{2}^{-}-\Delta\phi_{2}^{-}\Delta\bar{\phi}_{1}^{-})\end{split}$
(61)

where

$U^{(2,0)}(-\eta,0)=2\lambda\eta^{2},\ U^{(0,2)}(-\eta,0)=M^{2},\
U^{(1,1)}(-\eta,0)=0$ (62)

Therefore,

$\begin{split}F&=2\lambda\eta^{2}(\Delta\phi_{1}^{+}\Delta\bar{\phi}_{1}^{+}-\Delta\phi_{1}^{-}\Delta\bar{\phi}_{1}^{-})+M^{2}(\Delta\phi_{2}^{+}\Delta\bar{\phi}_{2}^{+}-\Delta\phi_{2}^{-}\Delta\bar{\phi}_{2}^{-})\\\
&=m_{\phi_{1}}^{2}(\Delta\phi_{1}^{+}\Delta\bar{\phi}_{1}^{+}-\Delta\phi_{1}^{-}\Delta\bar{\phi}_{1}^{-})+m_{\phi_{2}}^{2}(\Delta\phi_{2}^{+}\Delta\bar{\phi}_{2}^{+}-\Delta\phi_{2}^{-}\Delta\bar{\phi}_{2}^{-})\end{split}$
(63)

where

$\begin{split}\Delta\phi_{1}^{\pm}&=\phi_{1}^{\pm}-\phi_{1}(\pm\infty)\\\
\Delta\bar{\phi}_{1}^{\pm}&=\bar{\phi}_{1}^{\pm}\eta\\\
\Delta\phi_{2}^{\pm}&=\phi_{2}^{\pm}\\\
\Delta\bar{\phi}_{2}^{\pm}&=\bar{\phi}_{2}^{\pm}\\\
\implies\Delta\phi_{1}^{+}&=\eta(\tanh\sigma R-1)\\\
\implies\Delta\bar{\phi}_{1}^{+}&=\eta(\tanh\sigma(2a-R)-1)\\\
\Delta\phi_{1}^{-}&=\eta(1-\tanh\sigma R)\\\
\implies\Delta\bar{\phi}_{1}^{-}&=\eta(\tanh\sigma(2a+R)-1)\\\
\Delta\phi_{2}^{+}&=\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma
R\\\
\Delta\phi_{2}^{-}&=\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma
R\\\
\Delta\bar{\phi}_{2}^{+}&=-\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma(2a-R)\\\
\Delta\bar{\phi}_{2}^{-}&=-\sqrt{\eta^{2}-\frac{M^{2}}{\lambda}}\operatorname{sech}\sigma(2a+R)\end{split}$
(64)

Using above information we can write expression for force as following

$\begin{split}F&=m_{\phi_{1}}^{2}\eta^{2}\Big{[}(1-\tanh MR)(1-\tanh
M(2a-R))+(1-\tanh MR)(1-\tanh M(2a+R))\Big{]}\\\
&+m_{\phi_{2}}^{2}\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)\Big{[}-\operatorname{sech}MR\operatorname{sech}M(2a-R)+\operatorname{sech}MR\operatorname{sech}M(2a+R)\Big{]}\\\
&=4m_{\phi_{1}}^{2}\eta^{2}\frac{e^{-4Ma}}{e^{MR}+e^{-MR}}(e^{2MR}+e^{-2MR})-4m_{\phi_{2}}^{2}\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)\frac{e^{-4Ma}}{e^{MR}+e^{-MR}}(e^{MR}-e^{-MR})\\\
&\approx
4m_{\phi_{1}}^{2}\eta^{2}e^{-4Ma}e^{MR}-4m_{\phi_{2}}^{2}\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)e^{-2Ma}\\\
&=4(m_{\phi_{1}}^{2}e^{MR}-m_{\phi_{2}}^{2}e^{2Ma})\eta^{2}e^{-4Ma}+4m_{\phi_{2}}^{2}\frac{M^{2}}{\lambda}e^{-2Ma}\end{split}$
(65)

So, the above expression is positive definite if
$m_{\phi_{1}}^{2}>e^{M(2a-R)}m_{\phi_{2}}^{2}\implies\lambda>\frac{M^{2}}{2\eta^{2}}e^{M(2a-R)}$
and we also have a constraint which parameters must need to
satisfy$\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)>0\implies\lambda>\frac{M^{2}}{\eta^{2}}$.
And if $e^{M(2a-R)}>2$ then
$\lambda>\frac{M^{2}}{\eta^{2}}\mathrel{{\ooalign{$\not\phantom{=}$\cr$\implies$}}}\lambda>\frac{M^{2}}{2\eta^{2}}e^{M(2a-R)}$.

On the other hand expression is negative iff
$m_{\phi_{2}}^{2}\frac{M^{2}}{\lambda}e^{-2Ma}<(m_{\phi_{2}}^{2}e^{2Ma}-m_{\phi_{1}}^{2}e^{MR})\eta^{2}e^{4Ma}\implies
x^{2}e^{-2Ma}-xe^{2Ma}+2e^{MR}<0$and we can safely take $e^{4Ma}\gg
e^{MR},e^{2Ma}$ therefore inequality becomes $x^{2}e^{-2Ma}-xe^{-2Ma}<0$ where
$x=\frac{M^{2}}{\lambda\eta^{2}}$ which leads to condition
$\frac{M^{2}}{2\eta^{2}}e^{M(2a-R)}>\lambda\gtrapprox\frac{M^{2}}{\eta^{2}}$.

Therefore, if the first condition is satisfied by the parameter $\lambda$ then
$F>0$ implies force between kink and anti-kink is attractive in nature and if
second condition is satisfied by $\lambda$ then $F<0$ implies force between
kink and anti-kink is repulsive in nature.

###  4.2 Force calculation in Second Configuration

Now we look at the force when in $\phi_{2}$ we have two neighbouring localized
kinks but $>\phi_{1}$ remains as earlier which is shown in figure 4.

(66) Figure 4: right figure shows $\phi_{1}$ configuration and left figure
shows $\phi_{2}$ configuration

In this expression of the force is changed due to the term whose coefficient
is $m_{\phi_{2}}^{2}$ in eq.(4.14). That term is changed into following
expression

$\begin{split}m_{\phi_{2}}^{2}&\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)\operatorname{sech}MR(\operatorname{sech}M(2a-R)-\operatorname{sech}M(2a+R))\\\
\approx
4m_{\phi_{2}}^{2}&\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)e^{-2Ma}\tanh
MR\\\ \approx
4m_{\phi_{2}}^{2}&\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)e^{-2Ma}\end{split}$
(67)

which is positive definite because we need
$\left(\eta^{2}-\frac{M^{2}}{\lambda}\right)>0$ and therefore in this case
also net force is attractive in nature.

###  4.3 Nature of force

In this subsection we will discuss on the reason behind the expression of
force we got in earlier subsections. Note that Potential term in the action
eq.(3.1) can be rewritten in following way about asymptotic vacuum manifold
$\phi_{1}=\eta,\ \phi_{2}=0$

$\begin{split}U(\phi_{1},\phi_{2})&=\frac{\lambda}{4}(\phi_{1}^{2}+\phi_{2}^{2}-\eta^{2})^{2}+\frac{1}{2}M^{2}\phi_{2}^{2}\\\
U(\varphi_{1},\varphi_{2})&=\frac{\lambda}{4}(\varphi_{1}^{2}+2\eta\varphi_{1}+\varphi_{2}^{2})^{2}+\frac{1}{2}M^{2}\varphi_{2}^{2}\\\
&=\frac{\lambda}{4}(\varphi_{1}^{4}+\varphi_{2}^{4}+2\varphi_{1}^{2}\varphi_{2}^{2}+4\eta\varphi_{1}^{3}+4\eta\varphi_{1}\varphi_{2}^{2})\\\
&+\lambda\eta^{2}\varphi_{1}^{2}+\frac{1}{2}M^{2}\varphi_{2}^{2}\end{split}$
(68)

which clearly shows kinks and anti-kinks interacted through exchanging
$\varphi_{1}$ and $\varphi_{2}$ excitations or particles of square of masses
$2\lambda\eta^{2}$ and $M^{2}$ respectively through Yukawa like interaction
which we have found during calculation.

##  5 Conclusion

Studying dynamics of one dimensional soliton ilg2016dynamics ,
primatarowa2010dark , terai1993solitons  is one of the important branch in
modern physics. But very few articles in literature actually study coupled
solitons or solitons in two interacting scalar fields like in
saadatmand2014dynamics , morera2018dark , bazeia1995solitons  and they are
mostly restricted to numerical approaches to study scattering phenomena in
different background potential. People also have studied stability of such
solitons bazeia1997soliton , moduli space of kinks in 2 scalar fields model
izquierdo2002kink .

In this article we are not only able to provide a way to look at the existence
problem of solitons in 2 scalar field theory which can be appropriately
generalized to higher number of scalar field variables but we also provide a
new solution of MSTB which is not there in literature. We also explained why
this new soliton is important in terms of discrete translational symmetry
existed in the model and in terms of zero energy change during discontinuous
transition.

In the last section we have calculated amount of force that kinks or anti-
kinks exerted on each other. Unlike $\phi^{4}$-kinks here we found a region in
parameter space where kinks and anti-kinks can repel each other. We have also
explain the origin of nature of the force. These forces are calculated in long
range approximation which basically is that the distance between two
neighbouring kinks, anti-kinks are much larger than their individual width.

##  6 Acknowledgement

Author would like to thank CSIR to support this work through JRF fellowship.

## References

  * [1] JC Kimball.  Kinks, solitons, and nonlinear transport in solids.  Physical Review B, 21(6):2104, 1980.
  * [2] M Remoissenet.  Cooperative diffusion in one dimensional ionic conductors and soliton brownian motion.  Solid State Communications, 27(7):681–684, 1978.
  * [3] Claudio Chamon.  Solitons in carbon nanotubes.  Physical Review B, 62(4):2806, 2000.
  * [4] Gordon W Semenoff, V Semenoff, and Fei Zhou.  Domain walls in gapped graphene.  Physical review letters, 101(8):087204, 2008.
  * [5] T. Vachaspati.  Kinks and Domain Walls: An Introduction to Classical and Quantum Solitons.  Cambridge University Press, 2006.
  * [6] R. Rajaraman.  SOLITONS AND INSTANTONS. AN INTRODUCTION TO SOLITONS AND INSTANTONS IN QUANTUM FIELD THEORY.  1982\.
  * [7] A Alonso-Izquierdo.  Kink dynamics in the mstb model.  arXiv preprint arXiv:1804.05605, 2018.
  * [8] A Alonso Izquierdo and J Mateos Guilarte.  Generalized mstb models: Structure and kink varieties.  Physica D: Nonlinear Phenomena, 237(24):3263–3291, 2008.
  * [9] Susobhan Mandal.  Characteristics of z(2) multi-kink soliton configurations.  2018\.
  * [10] Tobias Ilg, Ramona Tschüter, Andrej Junginger, Jörg Main, and Günter Wunner.  Dynamics of solitons in the one-dimensional nonlinear schrödinger equation.  The European Physical Journal D, 70(11):232, 2016.
  * [11] MT Primatarowa and RS Kamburova.  Dark soliton dynamics in classical one-dimensional spin systems.  In Journal of Physics: Conference Series, volume 253, page 012022\. IOP Publishing, 2010.
  * [12] Akira Terai and Yoshiyuki Ono.  Solitons and their dynamics in one-dimensional sdw systems.  Progress of Theoretical Physics Supplement, 113:177–190, 1993.
  * [13] Danial Saadatmand, Aliakbar Moradi Marjaneh, and Mahdi Heidari.  Dynamics of coupled field solitons: A collective coordinate approach.  Pramana, 83(4):505–517, 2014.
  * [14] I Morera, A Muñoz Mateo, A Polls, and B Juliá-Díaz.  Dark-dark-soliton dynamics in two density-coupled bose-einstein condensates.  Physical Review A, 97(4):043621, 2018.
  * [15] D Bazeia, MJ Dos Santos, and RF Ribeiro.  Solitons in systems of coupled scalar fields.  Physics Letters A, 208(1-2):84–88, 1995.
  * [16] D Bazeia, JRS Nascimento, RF Ribeiro, and D Toledo.  Soliton stability in systems of two real scalar fields.  Journal of Physics A: Mathematical and General, 30(23):8157, 1997\.
  * [17] A Alonso Izquierdo, MA Gonzalez Leon, and J Mateos Guilarte.  Kink variety in systems of two coupled scalar fields in two space-time dimensions.  Physical Review D, 65(8):085012, 2002.